Mudlet / Mudlet

⚔️ A cross-platform, open source, and super fast MUD client with scripting in Lua
https://mudlet.org
GNU General Public License v2.0
739 stars 267 forks source link

Improve Accessibility - PTB Updater #6539

Open ironcross32 opened 1 year ago

ironcross32 commented 1 year ago

Brief summary of issue / Description of requested feature:

During the update process, there are usually two dialogs that will pop up. Both of these dialogs have inaccessible elements that contain what's changed in the latest update.

Steps to reproduce the issue / Reasons for adding feature:

  1. When there is an update, a dialog pops up with a few buttons. "Remind me later", and "Update" are among them.
  2. Press tab until, "Grouping" is heard (Note, terminology may vary per screen reader.
  3. This area contains information on what the update will change, however, it is inaccessible.
  4. I propose that this box be turned into a read-only multiline textbox so screen readers may access it.

N.B. There is a similar grouping on the other dialog that pops up, where the sole button seems to be, "Ok".

Error output / Expected result of feature

The change log content is not accessible to screen readers.

Extra information, such as the Mudlet version, operating system and ideas for how to solve / implemenwt:

Any recent PTB version as of the time of this writing.

SlySven commented 1 year ago

:thinking: Is this something we can do or does it need to be referred upstream?

vadi2 commented 1 year ago

Upstream has no activity for some years now, but I think we can solve it locally ourselves by forking upstream.

Kebap commented 1 year ago

Additional detail:

bcross 🧑🏻🦯

All of the update boxes do this. To be honest, since the update process just sort of happens and there's no feedback, it's difficult to say what step in the process it occurs, but the two different pop-ups I've noticed is one with some information, a button to remind me later, and one to update. The other one has some information, and then an OK button.

I wonder if we could make the update information for the PTB a read-only text box? As of now, tabbing into it only says, "Grouping", arrows do nothing. The only way to read it is OCR scanning, which sometimes works OK and other times, well... > 17 - 38 > Wings > Spp morp NCAAW RaskpthAII > IrK'dent near you

SlySven

That suggests that the screen-reader is only pronouncing the Qt default "type" for a QGroupBox - which is, indeed, "Grouping" - in the same way that the buttons on the bottom of the screen (that get hidden from sighted players with the "Compact input line" option enabled) are either announced as "checkbox" or "button" depending on whether they are "toggle-able" buttons (two are if I recall correctly) or not (the remaining four).

bcross 🧑🏻🦯

The next time there's an update, I'll scan the window, jump the mouse to the scan result and force a click. If your theory is correct, which I'm almost certain it is, that'll cause system focus to go inside the box (if it can).

Leris

You can always download an older version from mudlet.org if you want to test more

bcross 🧑🏻🦯

OK, have done that real quick, and the result of it is that I can't click into the info, which indicates to me that system focus can't go there.

Here's NVDA's developer information about that control

name: '' role: Role.GROUPING processID: 20936 roleText: None states: State.FOCUSABLE, State.FOCUSED isFocusable: True hasFocus: True Python object: <NVDAObjects.UIA.UIA object at 0x04FAF7B0> Python class mro: (<class 'NVDAObjects.UIA.UIA'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'documentBase.TextContainerObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <class 'garbageHandler.TrackedObject'>, <class 'object'>) description: '' location: RectLTWH(left=394, top=298, width=578, height=150) value: '' TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'> appModule: <'appModuleHandler' (appName 'mudlet ptb', process ID 20936) at address 7a4c410> appModule.productName: 'Mudlet PTB' appModule.productVersion: '4.16.0.0' appModule.helperLocalBindingHandle: c_long(143714072) windowHandle: 5639254 windowClassName: 'Qt5QWindowIcon' windowControlID: 0 windowStyle: -1765015552 extendedWindowStyle: 1280 windowThreadID: 516 windowText: 'Mudlet Public Test Build update' displayText: '' UIAElement: <POINTER(IUIAutomationElement) ptr=0x5c456b0 at 869f800> UIA automationID: UpdateDialog.scrollAreaChangelog UIA frameworkID: Qt UIA runtimeID: (42, 5639254, 4, -2147483545) UIA providerDescription: [pid:20936,providerId:0x0 Main(parent link):Unidentified Provider (unmanaged:qwindows.dll)] UIA className: QScrollArea UIA patterns available: LegacyIAccessiblePattern, InvokePattern, ValuePattern

I can actually access the information with object nav, I can't believe I didn't try that first lol. I copied the text out

4.16.0-ptb-2023-02-07-b8b90 Infrastructure:

  • Re-Enable release automations that were disabled due to SSH key issues (#6092) 4.16.0-ptb-2023-02-06-444c8 Infrastructure:
  • Bump leafo/gh-actions-lua from 9 to 10 (#6535)

I can get to the information in Narrator and Jaws. Both require me to go two levels deep into grouping, and none show in the tab order. In Narrator, a setting is required to be activated, that I wouldn't expect a lot of people to know about. In Jaws, it requires the use of the touch cursor.