New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accessibility issues in the VidCoder UI #284

Closed
schulle4u opened this Issue Dec 9, 2017 · 14 comments

Comments

Projects
None yet
3 participants
@schulle4u
Copy link

schulle4u commented Dec 9, 2017

Hello,

I'm trying to use VidCoder with a screen reader and stumbled upon a few accessibility issues. Many buttons in the main UI are not labeled or display confusing text strings. For example the quality preset selector shows the text "VidCoder.ViewModel.PresetViewModel" for each preset instead of the actual preset name, and when converting a DVD the title selector shows "Handbrake.ApplicationServices.Interop.Json.Scan.SourceTitle", which is not that useful for me. In case of unlabeled buttons I can read some elements by using an OCR function provided by my screen reader, but this is only a temporary solution at best. Other controls such as the menu bar are no problem to access.

System: Win10 Home 64 Bit, VidCoder V2.62 (X64), also tested with latest available beta.

Blind people probably are not the main audience for video software, but are there any chances to get these accessibility issues fixed? If you want to test this yourself, you can use the free and open-source NVDA screen reader.

Thanks in advance
Steffen

@RandomEngy

This comment has been minimized.

Copy link
Owner

RandomEngy commented Dec 9, 2017

@schulle4u

This comment has been minimized.

Copy link
Author

schulle4u commented Dec 9, 2017

Yes, I am blind and primarily would like to use VidCoder to create mp4 copies of my DVD collection and have these files centrally accessible on a local network storage device. Especially the possibility to extract multiple audio tracks is great, for example when a DVD contains an additional audio description track for blind people. I've already tested a few tools, but either they have completely inaccessible UI's or their feature set is very limited. Even paid software often ignores blind users when it comes to video-related things. Making VidCoder more accessible therefore not just could make it a good choice for our community, it probably would be the only accessible FOSS solution for us. There is another tool called TEncoder which is accessible in most parts, but I found it to be somewhat unstable and more complicated than VidCoder.

Windows Narrator has been greatly improved in Windows 10 and of course also can be used to test for accessibility, I just completely forgot about it.

Steffen

@RandomEngy

This comment has been minimized.

Copy link
Owner

RandomEngy commented Dec 9, 2017

Okay, thank you for your patience and insight into the issue! I'm going to put this item on the backlog. I've been doing accessibility work with screen readers and high contrast mode at work, so that should help me out.

I have some larger UI rework planned in the near future, so I will delay accessibility work until that's done so I don't do throwaway work. I would like to get it in before the next stable release though.

@RandomEngy

This comment has been minimized.

Copy link
Owner

RandomEngy commented Sep 28, 2018

Okay I've gone over the app top to bottom and fixed a whole raft of issues with screen readers and keyboard navigation in 4.15 Beta.

  • All buttons, combo box items, text boxes and number boxes are now all labeled properly
  • Save/Rename bar is no longer a focus trap
  • You can toggle audio and subtitle tracks with space bar and hear the new toggle value
  • You can set focus on the preset list now in the encoding settings window

Unfortunately the formerly accessible menu bar has been replaced by a ribbon UI, which has pretty terrible screen reader support. But I've opened an issue on the Fluent Ribbon project and they are taking a look at it: fluentribbon/Fluent.Ribbon#640 . I hope to have it fixed when they get it resolved on their end.

Please let me know if you find any more usability issues with screen readers.

@schulle4u

This comment has been minimized.

Copy link
Author

schulle4u commented Sep 28, 2018

Thank you, this looks promising so far. I'm currently running a test encoding and found some more missing labels on the way:

  • The "Preview" and "Encode" buttons are presented as unlabeled button, I had to OCR them in order to find the right one.
  • Same applies to the "stopp" button while encoding.
  • The subtitles selector as well as the encoding queue doesn't provide propper track labels in the list when cursoring up and down. For example the queue list shows Vidcoder.ViewModel.EncodeJobViewModel instead of the job status. As for the queue I can use NVDA's object navigation to read the status of an item.

There is another unlabeled toggle button in tab order right before the "encode" button, I couldn't find out what it is Doing. Here is some developer info from NVDA log that might help you:

Developer info for navigator object:
name: u''
role: ROLE_TOGGLEBUTTON
states: STATE_FOCUSABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.UIA.UIA object at 0x04C682F0>
Python class mro: (<class 'NVDAObjects.UIA.UIA'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'documentBase.TextContainerObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: ''
location: RectLTWH(left=379, top=24, width=103, height=33)
value: None
appModule: <'appModuleHandler' (appName u'vidcoder', process ID 1944) at address 494a270>
appModule.productName: u'VidCoder'
appModule.productVersion: u'4.15.0.0'
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 1442500
windowClassName: u'HwndWrapper[VidCoder.exe;;b8bc5fa1-58aa-4992-90a1-070158d2ddbf]'
windowControlID: 0
windowStyle: 399441920
windowThreadID: 6980
windowText: u'VidCoder Beta - 58,8%'
displayText: u''
UIAElement: <POINTER(IUIAutomationElement) ptr=0x94580e8 at 4eb2990>
UIA automationID: PART_Button
UIA frameworkID: WPF
UIA runtimeID: (7, 1944, 65776751)
UIA providerDescription: [pid:1944,providerId:0x0 Main(parent link):Unidentified Provider (managed:MS.Internal.Automation.ElementProxy, PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)]
UIA className: Button
UIA patterns available: LegacyIAccessiblePattern, SynchronizedInputPattern, TogglePattern

I've also noticed that when using object navigation or scan mode in Narrator, there are unlabeled buttons and other controls outside the tab order for which I'm not sure what they are doing. To access these controls, start Narrator and press Capslock+Space in the Vidcoder Window, this will activate the scan mode. Then cursor up and down to view screen content. Some controls only seem to have informational purpose, while other buttons are displayed to the screenreader even if they are currently not visually present on the screen. NVDA developer infos shows that they are not focusable. Maybe a general dotnet issue, I've seen other applications with this behaviour.

The ribbon bar indeed currently isn't accessible at all, even my screenreader's OCR functionality doesn't provide anything useful. Native ribbons such as in windows explorer generally are no problem for screenreaders, though I don't like them that much. Let's wait if fluent devs can do something about it. At least I'm now able to use the program - thanks again. :)

@RandomEngy

This comment has been minimized.

Copy link
Owner

RandomEngy commented Sep 29, 2018

The mystery button you speak of is probably the "Add to Queue" button. Hopefully will be fixed when fluent ribbon updates, along with the Preview, Encode and Stop buttons.

I have a fix ready for the queue items and finished items, so it will read out the source / destination path. That will be in the next Beta version.

The "mystery items" that show up in the scan are probably more Ribbon items. The "group" labels are in the tab order and also there's a unused hidden "tab" on the ribbon that I'm hiding off screen until the update comes in that allows me to hide it properly.

@RandomEngy

This comment has been minimized.

Copy link
Owner

RandomEngy commented Oct 2, 2018

Okay the queue items and finished items should be fixed in 4.16 Beta.

@RandomEngy

This comment has been minimized.

Copy link
Owner

RandomEngy commented Oct 4, 2018

I've opened a pull request on the Fluent Ribbon project to fix the automation issues with buttons:

fluentribbon/Fluent.Ribbon#646

@batzen

This comment has been minimized.

Copy link

batzen commented Oct 6, 2018

Tracking issues for this on https://github.com/fluentribbon/Fluent.Ribbon/projects/4
If you find more screen reader issues within the ribbon please report them at Fluent.Ribbon.

@schulle4u

This comment has been minimized.

Copy link
Author

schulle4u commented Oct 6, 2018

Thank you. I'll wait for promised Fluent fixes in the next Vidcoder betas and see what else can be done to improve accessibility.

@RandomEngy

This comment has been minimized.

Copy link
Owner

RandomEngy commented Dec 27, 2018

The Ribbon accessibility issues should be fixed in 4.26 Beta, thanks to @batzen 's fixes in the Fluent Ribbon library.

I think we should be 100% good to go now; just let me know if you see any more issues.

@RandomEngy RandomEngy closed this Dec 27, 2018

@schulle4u

This comment has been minimized.

Copy link
Author

schulle4u commented Dec 27, 2018

Thank you, looks great so far. :)
The only minor issue I see for the moment is that the ribbon, distinct from normal ribbons in Windows, is not being recocnized as ribbon or menu by the screen reader, and also cannot be opened using the Alt key. A user has to tab around the whole application to access the menu. Some shortcuts would help here, but as said this is only a minor problem.
The actual problem seems to be completely fixed - thanks again!

Steffen

@batzen

This comment has been minimized.

Copy link

batzen commented Dec 27, 2018

@schulle4u The issues you are talking about are things i started working on, but as i don't know anyone in person who has disabilities i don't know if the things i am implementing will actually help or cause more harm. Would you mind contacting me on gitter so we can chat privately? I would really like to provide early samples to you to get feedback directly. We could also use german in the private chat on gitter ;-)
So if you are interested in improving the screen reader support on the ribbon feel free to contact me any time on gitter.

@schulle4u

This comment has been minimized.

Copy link
Author

schulle4u commented Dec 27, 2018

@batzen No problem, I'll contact you as soon as I can find an usable Gitter access. Client and website are quite tricky for me to use, will have a closer look to the IRC bridge later this day. I'm also available via XMPP via my public GitHub email.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment