Accessibility failures in Telegram for iOS

Русская версия

Testing methodology

Accessibility issues were identified in the official Telegram application for iOS version: 10.2.4.

Two devices were used for accessibility testing:

  • iPhone SE with iOS 14.8.1.
  • iPhone SE 2022 with iOS 17.1 installed.

Prerequisites

  1. The official Telegram application should be downloaded from the App Store
  2. The user should be registered and signed in in Telegram
  3. There should be more than ten conversations in the chat list
  4. There should be more than ten messages in a currently viewed chat or a channel
  5. VoiceOver screen reader should be used.

Executive summary

Identified accessibility problems in the official Telegram application on iOS can be divided into the following groups:

  1. Major accessibility errors in the implementation of scrollable lists. Here We can mention a list of chats and channels and, most importantly, a list of messages in a chat or a channel
  2. Accessibility errors in the implementation of additional pop-ups, which appear as new screens or model windows. It can be clearly seen when voiceover focus does not automatically move to the new screen, but instead remains on those interface elements that do not exist. Example: screen for selecting the type of the object, which can be sent to a chat or to an administrated channel etc.
  3. Some buttons and other interface elements have a neutral mark-up, meaning, that they do not pass any information about their purpose to a screen reader user. Such elements presented to a screen reader user as blank. A good example of this could be the button, which takes a user to the last message in chats and channels, as well as the togglable buttons on the data and storage screen in the Settings tab.
  4. Separately, it should be noted that there are some interface elements that not only do not contain information accessible to a screen reader user, but also are not being detected as such in daily use of the application. They just do not take accessibility focus. Example: buttons at the top of the screen on the Chats tab.

Accessibility issues

1. Chat list does not scroll automatically (Critical)

The automatic scrolling of the list of chats and channels does not work on the “Chat” tab.

STEPS to reproduce

  1. In the main screen of the application, Open the “Chats” tab.
  2. Set VoiceOver focus to the last visible chat in the chat list using one of the following methods:
    1. Perform one-finger tap on the last visible chat on the screen,
    2. Swipe right with one finger, sequentially moving through all interface elements.
  3. Move to the next item on the screen by swiping right with one finger.

EXPECTED RESULT

When the list of chats scrolls, Voiceover focus should automatically move to the next conversation or a chat in sequence.

ACTUAL RESULT

The list of chats does not scroll, and Voiceover focus moves to the buttons, located at the top of the screen, instead of shifting the focus to the next conversation or a chat in line.

2. The buttons, located near the “Chats” tab do not take accessibility focus.

The Chats tab, located at the top of the screen, contains buttons, which, when activated, bring up such functions as write a new message, search input, etc. These buttons are visually presented to a user as «Edit», «+», «Pencil with a piece of paper». Unfortunately, it is impossible to interact with these elements, using Voiceover.

STEPS to reproduce

  1. Launch the Telegram application,
  2. Tap once at the top of the screen,
  3. Move Voiceover focus across interface elements by swiping right or left with one finger.

EXPECTED RESULT

VoiceOver focus should move to a button, conveying their role, name type or value. It should also allow a user to interact with them, based on the information available to a Voiceover.

ACTUAL Result

Currently, these elements do not take Voiceover focus and are totally inaccessible to screen reader users.

3. Sequential order navigation within a boarder of a chat or a channel is unpredictable (Critical)

A chat or a channel has a number of critical issues with sequential reading of the messages.

STEPS to reproduce

  1. Open a chat or a channel, which contains more than ten messages,
  2. Move through the messages sequentially from old to new by swiping one finger to the right, or backwards by swiping one finger to the left.

EXPECTED RESULT

The accessibility focus should move across all messages in the conversation, and VoiceOver should report all message related information (sender’s name, message content, date and time sent by, reactions, etc.). If required, accessibility focus should sequentially move through the message list, with ability to scroll the screen to the previous message and its interactive content, such as links or other elements that would allow a user to jump to the next conversation. (for example, a user should be able to quickly move to Go to the Latest Message button). A user should also be able to move to automated notifications or markers, so to speak (for example, to the date that acts as a correspondence separator — when appropriate).

ACTUAL RESULT

After a user reaches one or more messages (up to ten), using 1-finger left or right swipes, screen reader focus moves away from the message list. After that, in order to move to the next or a previous message, a user has to perform a number of vertical swipes with three fingers (from the bottom to the top if a user needs to get to new messages, or from the top to the bottom if a user needs to find the old ones). In this complicated process of locating the information, there is always a risk of skipping important messages related to study, family or work, which can have a major impact on overall result.

4. The interactive element that takes a user to the last message, has a neutral mark-up (Critical)

This element often appears in chats and channels. It allows a user to quickly jump to the first or the last message. Although the element does receive accessibility focus, but it does not provide a user with the information, that gives them an ability to identify its purpose in context, such as accessible name, type, role or value. By activating it and browsing the screen, A user can only take an educated guess at, what this element does and what it has potentially been intended to.

STEPS to reproduce

  1. Open a chat or a channel with more than ten messages,
  2. Make sure that the last or the newest message is not visible, and that the conversation is scrolled up the screen.
  3. Set the accessibility or Voiceover focus to the element responsible for scrolling the conversation down to the most recent message.

EXPECTED RESULT

VoiceOver should speak the name of the control (for example, “Go to the last message”) and its type/role, “button.”

ACTUAL RESULT

VoiceOver does not announce nor the name neither the type of the element. A screen reader treats this element as a blank space.

5. Reactions for messages are not accessible (Blocker)

A VoiceOver user is unable to react to a message or to learn about the reactions of other users.

STEPS to reproduce

  1. Open any chat or a channel, where a message has a user reaction.
  2. Set the accessibility or Voiceover focus to the message, which contains a reaction of some kind,
  3. Open the context menu of the message, that you would like to respond to.

EXPECTED RESULT

  1. In Step 2: VoiceOver should announce the information about the reactions, which have been set to the current message.
  2. In step 3: the VoiceOver user should be able to view the options for available reactions, select the desired one and apply it to the message.

ACTUAL RESULT

The VoiceOver user does not receive information about the number and the category of reactions available for the message on focus and is not able to select and use them to indicate their acknowledgement of the information received.

6.The navigation structure in the application settings is broken (Critical)

The automatic scrolling of the screens with application settings does not work. As a result of this, it is impossible to move to the next element if it is not visible on the screen. To access elements that are located outside the visible area, a VoiceOver user has to manually scroll the screen. However, this does not help a visually impaired user that much since they are still unable to receive any information regarding the elements outside its visible area.

The issue can be found in the following sections: “Notifications and sounds,” “Devices”, “Data and storage”. The problem is illustrated in the Data and Memory section.

STEPS to reproduce

  1. Activate “Settings” tab,
  2. Open the “Data and storage” tab,
  3. View the screen in any of the following ways:
  4. Perform the “Read from top” command, using swipe up with two fingers gesture,
  5. View all elements presented on the screen in a logical order, using (swipe to the right with one finger several times) gesture.
  6. In both cases, the last object on the screen is the false label: “Automatically save all new photos and videos from these chats to the Photos”,
  7. Swipe right with one finger to move to the next object.

EXPECTED RESULT

When the screen scrolls down, accessibility focus should move to the next element. VoiceOver should report its name, type/role, state, and other relevant information, which is available to a user. In this case, it is the “Use less data for calls “button.

ACTUAL RESULT

The screen does not scroll, the accessibility focus remains on the current element, and a sound is played, indicating to a screen reader user that the current element is the last one in sequence. In this case, it is a label: «Automatically save all new photos and videos from these chats to the Photos». There is no information, which would prompt to a screen reader user, that there are other elements exist outside the visible area. A user can only move to the rest of the options in this section in confidence, knowing that they are there. To do this, a user needs to scroll the screen by swiping up from the bottom, with three fingers.

7. Data and storage Screen Contains Unlabelled Controls (Blocker)

The usage of storage screen contains interface elements that have a neutral mark-up, meaning that it is impossible for a screen reader user to identify their purpose in context.

STEPS to reproduce

  1. Open Telegram settings.
  2. Select the “Data and storage” screen,
  3. Go to the “Storage Usage” subsection.

EXPECTED RESULT

A screen reader user should be able to read information about the storage usage of the Telegram application, as well as to find out the purpose and the state of the available buttons. They are data types and a list of chats.

ACTUAL RESULT

  1. The only element (besides the back button) that meets accessibility requirements is the “Clear entire cache” button.
  2. The remaining elements do not provide information to the screen reader user about their purpose and state. The screen reader simply tells you that it is a button and that is it. There is no information about its name and what it does.

8. Audio playback control is not accessible (Critical)

It is very difficult for a screen reader user to operate playback controls of audio messages.

STEPS to reproduce

  1. Open a channel that contains audio messages.
  2. set accessibility focus to an audio message and start a playback by quickly double tapping the screen with 1 finger.

EXPECTED RESULT

The playback controls available to VoiceOver, should appear on the new opened screen.

ACTUAL RESULT

On the open conversation screen, playback controls are not accessible. They are available on the previous “Chat list” screen, but in order to reach them and stop the audio, a user would have to close a current screen. Such application structure is not intuitive and may confuse some users, which may not have additional skills to perform certain tasks. In addition to this, playback controls have no programmatically associated labels or roles: VoiceOver speaks only the names of the elements on focus.

Please note, you can control the playback of audio messages using the player on the locked screen, but with limited functionality (for example, it is impossible to change the playback speed on the locked screen).

9. Video playback controls are not accessible (Blocker)

Video playback as a process is unstable, the playback controls are not accessible for a screen reader user. In order to continue the operation, the application requires restart.

STEPS to reproduce

  1. Open a conversation that contains video messages,
  2. Set the accessibility focus to any video message and activate it by quickly tapping the screen twice with 1 finger.

EXPECTED RESULT

The open conversation screen should display playback controls, including the ability to stop the video, close the player. A user should be able to continue working with the application without any interference.

ACTUAL RESULT

  1. Playback may or may not start. A screen reader user does not receive any information about the reason for a failure.
  2. Playback controls (such as pause and rewind) are not accessible for a screen reader user,
  3. When a playback is stopped, a screen reader user is not able to receive any information about the elements on the screen. In order to continue using Telegram, the application has to be closed first via iOS application switcher and launched again.

10. A playback control of a voice message is extremely difficult (Critical)

Playback controls are not accessible on the open conversation screen, and there is no accessible progress indicator, which shows the message that is currently being played.

STEPS to reproduce

  1. Open a conversation that contains voice messages,
  2. Set the accessibility focus to any voice message and activate it by quickly double tapping the screen with 1 finger.

EXPECTED RESULT

  1. Playback controls should be available on the open conversation screen.
  2. The message that is currently playing should have a proper progress indicator available to VoiceOver. users.

ACTUAL RESULT

  1. The playback controls that appear on the open conversation screen are not accessible for VoiceOver user. They are available only in the chat list, but having to close a conversation to control its content is counter-productive and confusing for a non-sighted user,
  2. The voice message, which is currently being played, does not have a proper progress indicator, accessible to a VoiceOver user. As a result, a non-sighted user is unable to receive information about which voice message is currently being played and about its duration. It is very inconvenient, especially if there is a number of messages of the same type in a chat.

11. The options for selecting a type of an attached media file are not accessible (Blocker)

The elements, which are located on the “Send a media file” screen, which opens using the “Send media” button, are not accessible for a screen reader user.

STEPS to reproduce

  1. Open a conversation that allows to send messages with media content (for example, it could be your own channel, a group or a chat with another user).
  2. Set the accessibility focus to the “Send Media” button and activate it by quickly double tapping the screen with 1 finger.

EXPECTED RESULT

  1. VoiceOver focus should automatically be placed inside the model window that appears on the screen and it should not move beyond its borders,
  2. The elements located in the Send Media model window should be accessible for a VoiceOver user. A non-sighted user should be able to explore the model window, to select the items, that they would like to send to a channel, and to attach them to a message.

ACTUAL RESULT

  1. VoiceOver focus remains on the Attach Media button (even though a new model window has appeared on the screen). Accessibility focus can only be placed on the elements of the model window that opens using Explore by Touch accessibility feature.
  2. The model window that opens contains a few elements that are not accessible for VoiceOver user. For example, the tabs, which have been designed to select the type of a media, which can be attached such as: “Gallery”, “File”, “Geolocation”, “Poll”, “Contact”) do not take accessibility focus.

12. Share screen option is not accessible (Blocker)

The screen that allows a user to share content from other apps with each other is not accessible to a screen reader user.

STEPS to reproduce

  1. Open an application that supports the ability to share content with Telegram (for example, Safari browser),
  2. Open any WEB page (for example, www.i2tc.org),
  3. Set the accessibility focus to the “Share” button and activate it,
  4. Select Telegram in the list of applications for sharing content,
  5. On the new screen that opens after Telegram has been selected, swipe right with one finger to move focus across the elements.

EXPECTED RESULT

All interface elements should be accessible with VoiceOver: a non-sighted user should be able to view the list of chats, where the messages can be sent, to select the ones they need and easily share the content with each other.

ACTUAL RESULT

The list of chats on the Telegram screen for sharing content is not accessible for VoiceOver users: a non-sighted user is not able to view available chats, select the ones they need, and share the content, which comes from an external application with each other.

13. Joining a live broadcast is difficult (Critical)

When a user tries to join a broadcast, Voiceover focus does not automatically move to the screen that appears when a Join broadcast button is pressed.

STEPS to reproduce

  1. Open the channel that has a live broadcast,
  2. Set the accessibility focus to the broadcast announcement message and activate it by quickly double tapping the screen with 1 finger.

EXPECTED RESULT

Voiceover focus should automatically move to the new model window for selecting a user or a channel, which broadcast they would like to join. All model window elements should be accessible.

VoiceOver focus should not go beyond the boarders of the new model window.

Actual RESULT

VoiceOver focus remains on the join broadcast message and is out of scope from the visible view of the screen. If a user moves VoiceOver focus to adjacent elements by swiping 1 finger left or right, VoiceOver focus shifts to the invisible elements of the previous screen, instead of moving to the visible view of the current window.

14. A broadcast participant’s interface is not accessible (Blocker)

The elements of the Participant model window are not accessible for VoiceOver user and often a broadcast audio may prevent them from controlling the device.

STEPS to reproduce

  1. Open the channel that has a live broadcast
  2. Set the accessibility focus to the message with the broadcast announcement and activate it by quickly double tapping the screen with 1 finger,
  3. Specify a user or a channel to which broadcast you would want to join,
  4. Consistently move VoiceOver focus through the elements of the screen that has just been opened.

EXPECTED RESULT

All elements of the broadcast participant screen should be accessible for VoiceOver user. They should be able to independently participate in the broadcast as well as to turn on/off the broadcast sound and so on.

ACTUAL RESULT

  1. The elements of the Broadcast participant screen have a neutral mark-up, meaning that they do not contain information about their purpose that is available to VoiceOver user,
  2. In fact, in some circumstances, the volume of the broadcast was too high, so that it was impossible for a VoiceOver user to understand their synthesizer’s voice. When designing for accessibility, it is important to make sure that the Telegram audio stream follows general rules, available in iOS, and is muted as soon as VoiceOver starts speaking.

15. The names of the group threats are not accessible (Critical)

In a group with multiple discussions, it is possible to set various threats for easy navigation., If a user tries to access the list of all threats, their names are not announced.

STEPS to reproduce

  1. On the “Chats” tab, navigate to “Search” input and activate it,
  2. Enter the name of a group with several topics,
  3. In the list of results, select the group, that you have been looking for, and open it,
  4. Explore the list of threats, sequentially moving VoiceOver focus across the elements on the screen by swiping 1 finger right and left.

EXPECTED RESULT

All interface elements should be accessible for a VoiceOver user. The users should be able to find out the name of the threat and the information about the latest message, which belongs to it.

ACTUAL RESULT

Redundant information, such as (group name) is announced together with the last message of the threat. However, such important announcement as (The name of a threat) is omitted. In order to find out the name of the threat, a user needs to open the actual threat itself. This makes it difficult to navigate groups with multiple discussions.

16. The list of group threats is not accessible (Critical)

The accessibility focus does not automatically move to the list of threats.

If a user sets VoiceOver focus to a threat, the speech announcement will not be relevant to the element on focus. Also, it becomes impossible to move back from the list of topics to the list of chats, using the most expected methods of navigation.

STEPS to reproduce

  1. Open “Chats” tab,
  2. In the list of chats, open a group that contains several threats.

EXPECTED RESULT

The screen that appears and all interface elements, including the list of threats, should be accessible for VoiceOver user. Also, standard VoiceOver gestures, including back command (two-finger scrub), should work as expected.

ACTUAL RESULT

One of two things may be happening:

  1. A list of messages from one of the group threats may come up on the screen. In this case, VoiceOver behaves similarly to a conversation without threats,
  2. A header with the name of the group may appear on the screen together with the list of threats. In this case, VoiceOver focus does not automatically move to the interface elements that have appeared on the screen. If a user manually sets their focus to one of the threats, redundant information (group name) is spoken together with the last message in the threat. However, such important information, as (A threat name) is being ignored. In this case, the standard “Back” command (scrub with two fingers) does not work, i.e. Doesn’t return VoiceOver focus to the chat list. In order to return to the list of chats, a user needs to find and activate the “Chats” button.

Conclusion

In this report, we have tried to describe a wide range of scenarios for interaction with the official iOS application of such multifunctional service as Telegram. However, the presented list of accessibility problems may not be complete.

It is important not only to eliminate the identified problems, but also to put accessibility principles in practice –to a future interface design in general. Moreover, it was previously announced that some time ago the developers of Telegram seemed to be working on the accessibility of the application. In the case of the iOS application, this work has not been properly accomplished. And even worse, accessibility principles have still not become an integral part of the ongoing work on the interface design, which leads to the repetition of errors, that cause major difficulties in navigation for a screen reader user.

Why is it important?

The accessibility issues described above significantly limit a user experience, and do not allow a proper interaction with the application. The level of limitation would largely depend on the user’s skills and understanding the structure of the application, especially in the screen where the most errors occur. and figure out how one can try to overcome this in a current environment. Today, in order to efficiently operate the service, a user with no vision may need to combine the use of two different interface applications for different tasks (for example, the official Telegram client on iOS and the third-party Telegram client Unigram for Windows).

In 2023 in Russian App Store, the Telegram application has remained No. 1 in the ranking of “Social Networks” category. This figure speaks for itself really. For a large number of people, Telegram is an opportunity to access news on various topics of their interest, to communicate with other users on a personal and professional level, to fulfil their potential and at the end, to earn money for a living.

The ability to fully interact with such service without any barriers would certainly be beneficial and very much valuable in the process of integration of people with low vision into a modern society. This is why we truly believe that an open and constructive conversation about the accessibility of Telegram application may be required.

It is worth remembering that iOS as an operating system, provides a number of tools for making various elements of the application interface accessible. Also, the World Wide Web Consortium (W3C) has developed and maintained guidelines, to ensure that the accessibility of the web and digital content is preserved (the current version is WCAG 2.2), and its Russian equivalence GOST R 52872-2019 “Internet resources and other information presented in electronic digital form”. Applications for desktop and mobile devices as well as the other user interfaces have also been adopted for Accessibility requirements for people with disabilities.”

 

ANO «I2T centre» is thankful to Sergey Syrtsov for preparing the material and Ksenia Blake for translation.

Поделиться