App Accessibility Support
Support
- [ ] VoiceOver : Using Apple's VoiceOver screen reader, users can navigate an app's interface without needing to see the screen. Many people who are blind or have low vision use VoiceOver to understand and control apps.
- [ ] Voice Control : Using Apple's Voice Control feature, users with reduced mobility or dexterity can navigate an app's interface using only their voice. When looking at the screen, they can use commands like "tap", "click", or "swipe" to interact with on-screen elements.
- [ ] Larger Text : Users can adjust the size of text and icons to make them more legible, visible, and comfortable to read.
- [X] Dark Interface : Users with light sensitivity can maintain a dark user interface for the common tasks of the app to reduce eye pain or discomfort.
- [ ] Differentiate Without Color Alone : Users shouldn't have to rely on color to distinguish different selection states or values in an app. Instead, apps should use additional methods beyond color, such as text labels or icons, to convey information to users with common forms of color blindness.
- [X] Sufficient Contrast : Users can increase or adjust the contrast between text or iconography and the background, improving readability. Sufficient contrast helps users whose vision is reduced due to a disability or situational impairment (e.g. bright sunlight).
- [x] Reduced Motion : Motion can enrich app experience, but certain types of motion, such as scaling, spinning, or peripheral motion, cause dizziness or nausea for people with vestibular motion sensitivity. If your app includes these motion triggers, make them optional or provide alternative animations.
- [ ] Captions : Captions are usually time-synchronized text alternatives for dialogue and relevant sounds in videos or some forms of audio-only content. Captions are a necessary accommodation for the Deaf and hard of hearing communities. They're also used by the hearing community in many situations.
- [ ] Audio Descriptions : Audio descriptions are additional dialogue, interspersed between natural pauses in the main audio of a program or interstitial content, that describe to viewers who are blind or low vision what's happening on-screen during time-based visual content.
Remaining Tasks
- [x] Don't use the "one key cursor" above the keyboard, use 4 directional keys
- [x] VoiceOver feedback when deleting a character
- [x] Terminal content reading with VoiceOver
- [ ] Change the voice output for the left and right arrow keys so the current character is read instead of left and right.
- [ ] No Feedback When Typing: When I type a command, the text appears on the screen, but VoiceOver does not announce the characters as I type them. It behaves as if the text field is not active or as if I'm at the end of a document and can't type further.
- [ ] Unlabeled Buttons: In the area located just above the keyboard and below the main terminal output, there are several interactive elements that are now unlabeled. VoiceOver just says "button" when I focus on them. I believe these might be the same elements that were previously announced as "rows," but now they lack a proper accessibility label. I'm referring to the area directly above where the IP address is displayed. When I touch that area, VoiceOver doesn't read anything.
- [x] If possible, please add a paste button next to the control keys so we can easily paste clipboard content : https://webssh.net/documentation/help/howtos/SSH/customise-keyboard-accessory-view-layout/#allowed-special-keys-tokens
- [ ] Commands History
- [ ] When using up and down, speak the retrieved command from history
- [ ] speak the auto completion text when you press the tab key.
- [ ] Option to enable VoiceOver persistence even if disabled (keyboard layout)
- [x] Ability to scroll up / down the buffer while VoiceOver is enabled
- [ ] VoiceOver Rotor
- [ ] Server List quick actions
- [ ] SFTP : Would be great if actions like copy, delete, and rename could be added via the VoiceOver rotor.
VoiceOver Rotor
Ability to quickly access options like edit and disconnect directly through the VoiceOver rotor. While these options are available in the contextual menu, having them as rotor actions would make them much faster and more efficient to access for VoiceOver users, as it allows for direct navigation to specific actions. The VoiceOver rotor is a customizable on-screen control that allows blind and low-vision users to quickly access specific functions and information within an app by rotating two fingers on the screen. It provides a faster way to navigate and interact with elements than swiping through every item. To add items to the VoiceOver rotor for the server list in your app, you would typically need to implement accessibility APIs provided by Apple for iOS development. This involves identifying the actions available for each server item (like edit and disconnect) and programmatically making them available as rotor options. This would likely require modifications to the app's code to ensure these actions are exposed correctly to VoiceOver.
- https://swiftwithmajid.com/2021/09/14/accessibility-rotors-in-swiftui/
- https://www.createwithswift.com/understanding-accessibility-rotors-and-how-to-use-them/
- https://github.com/zhangyu1818/SwiftUI.md/blob/main/swiftui-accessibilityrotorentry.md
- https://github.com/lucas1295santos/AppleAccessibilityRotorExample
- https://www.createwithswift.com/accessibility-actions/
Hello @giulianozor π
Thanks for your feedback π
Could you tell me more about your request?
VoiceOver is not implemented at all inside WebSSH and I would like to know where you want to start
@giulianozor I need more information please
@isontheline Hello, the main issues I face are; β When using the keyboard, I get the voice feedback when inserting text, but not when deleting text. β I cannot get the terminal content reading. The only way is to enable screen recognition, but this will read everything from the beginning, so it is not very useful. The best would be to have each line selectable and readable. β The Corso to move up and down, left, and right in the upper row of the keyboard is not usable when VoiceOver is enabled. That is all I can think of right now.
Thank you. G G
Thanks for your feedback @giulianozor !
β When using the keyboard, I get the voice feedback when inserting text, but not when deleting text.
I'm new to VoiceOver so I need some guidance. When I delete chars I hear a sound, is it not the intended behaviour?
β I cannot get the terminal content reading. The only way is to enable screen recognition, but this will read everything from the beginning, so it is not very useful. The best would be to have each line selectable and readable.
I'm not able to provide text selection on the terminal due to an underlying library, you need to use "Show Scrollback Buffer" I know that's not ideal so I will try to make a workaround
β The Corso to move up and down, left, and right in the upper row of the keyboard is not usable when VoiceOver is enabled.
Are you talking about this component?
@isontheline When VoiceOver is enabled you get the reading of each character you type or delete. For example, if you type 123, you can hear one, two, three. Then if you delete 32, you hear three, two. This allows you to know which character you typed or delete. Also, there are other mouths like words or lines where you get the reading for a whole for the line, but in this case only when you delete, move or select a different line or worth. If it is not possible to get the liner readings without entering the buffet screen, that is very unfortunate Punto it makes the whole software 99% useless because there is no easy way to receive the output of your comments. Maybe the underlying library could be updated to support voiceover? I do not use it on Mac, only on iPad, but I suppose the same issue is present in the desktop version as well. The comp you circled in the AMEX is exactly the one I am talking about.
Thanks.
G
PS: sorry for not quoting correctly, it is difficult for me to quote using dictation
PS: sorry for not quoting correctly, it is difficult for me to quote using dictation
No problem at all
that is very unfortunate Punto it makes the whole software 99% useless because there is no easy way to receive the output of your comments
I will improve WebSSH in the upcoming releases to have a better accessibility
If you are still using WebSSH, I'll ping you when I've made some improvements to the accessibility elements
@isontheline Yes, I still use it, at least while I have some vision left. I will be glad to provide feedback and test.
I also tried other clients, but I have not found anything even close to web SSX, so I really hope you can improve the accessibility.
Thanks
G i
Hello @giulianozor π
WebSSH 28.1.1438 beta release is available with better VoiceOver support : https://testflight.apple.com/join/QSrBK59z
@isontheline hello, Thank you very much for the update! The cursor keys now working properly, and the voice reading for command outputs is great!
If possible, it would be great if you can change the voice output for the left and right arrow keys so the current character is red instead of left and right. These may or may be not related to the issue where the deleted characters are not spoken when deleted. Also, it would be awesome if when using up and down you get the command reading, if any is retrieved from the history.
New issue: it seems it is not possible to y scroll up and down to see the screen buffer. this is usually done with a swipe up or down with three fingers.
again, thanks a lot for the update!
@isontheline hello
I noticed that the issue about spoken deleted characters is fixed if I start a session with VoiceOver enabled, but if I start VoiceOver after connecting to a session, it is still present. In this case, the cursor key reverts back to the original button too.
I think that maybe an option in the settings to enable voiceover integration could work better, at least for this. I have seen this approach in other southwest, like IntelliJ idea. On the first start with VoiceOver enabled you get a pop-up that explains how to turn on the full integration in the settings. If you do not enable this option, you still get some integration, but with some limitations. if you enable this option, the changes are kept even if you turn off voiceover i.e. the keyboard shortcuts are different
Thank you.
G
Hello @giulianozor π
Many thanks for your strong feedback π
No problem I will make these improvements over the upcoming weeks and I will ping you each time a new enhancement is available.
Thank you to help me to enhance WebSSH accessibility!
@isontheline hello, Another useful addition could be to speak the auto completion text when you press the tab key. Thanks G
Hello @giulianozor π
No problem I'm planning it at same time with "When using up and down, speak the retrieved command from history"
Hello @giulianozor π
Could you please try the latest beta release? Specifically "Ability to scroll up / down the buffer while VoiceOver is enabled"
Thank you!
@isontheline hello, Thanks for the update. The scroll up and down seems to work correctly.
thanks again. G
Hello @giulianozor π
Change the voice output for the left and right arrow keys so the current character is read instead of left and right.
By current, you mean character behind the blinking cursor to be read?
I mean the char with th cursor under it after the cursor is moved. Letβs say i have the word 123456 and the cursor is under the 5. If i go lett (or delete) i hear β4βm i, i go right i hear β6β
Thanks for clarification @giulianozor π I will try something about it