View Issue Details

IDProjectCategoryView StatusLast Update
0001968OpenMPTAccessibilitypublic2026-04-28 09:11
Reportera11cf0 Assigned ToSaga Musix  
PrioritynormalSeverityminorReproducibilityhave not tried
Status assignedResolutionopen 
Platformx64OSWindowsOS Version11
Product VersionOpenMPT 1.33.00.* (current testing) 
Summary0001968: Accessibility issues with new sample grid settings
Description

The new sample grid options have a few accessibility and keyboard usability problems:

  1. The "grid segments" static text is wrongly presented by screen readers as belonging to the segment size edit field.
  2. The "Divide every" radio button seems to be keyboard-unreachable.
TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Activities

Saga Musix

Saga Musix

2026-04-21 19:41

administrator   ~0006648

I suspect that 1 is a result of 2 (it's in the tab order between the grid segments input field and the "divide every" radio button, so I fixed that in r25231. Let me know if the text is still not grouped correctly after that and I will see what can be done about it.

a11cf0

a11cf0

2026-04-22 09:18

reporter   ~0006655

Nothing seems to have changed. The radio button is still unreachable, and the label is grouped as before.

Saga Musix

Saga Musix

2026-04-22 20:42

administrator   ~0006656

Right, not the first time I forget how radio button grouping works... r25240 should hopefully work now. Unfortunately, just like in a few other dialogs, it's not possible to directly intersperse radio buttons with the options belonging to them, so first there is a tab group for the three radio buttons, and after that the input fields corresponding to them. To hopefully make it more obvious, I added suffixes to the input fields so that it's clear what their content represents. Hopefully this works better now. In the future I should probably also check if we can implement radio buttons as labels for input fields or if that just makes things even worse.

a11cf0

a11cf0

2026-04-23 13:10

reporter   ~0006657

Now everything is alright. The radio buttons are nicely grouped, and label order is also fixed.
BTW, the current way of adding accessible suffixes to edit controls does not work with NVDA, that's why I've never noticed them. This is because NVDA seems to completely ignore the accValue property on edit controls, always preferring the actual editable text instead. Narrator reads it as intended though.
Setting accDescription should work everywhere, however object description reporting may need to be manually enabled in some cases.

Saga Musix

Saga Musix

2026-04-23 16:35

administrator   ~0006658

Last edited: 2026-04-23 16:35

So would it be best to provide the suffixed value throug both get_accDescription and get_accValue?

a11cf0

a11cf0

2026-04-24 10:16

reporter   ~0006659

Using both will only make Narrator speak the suffixes twice. Further testing shows the following: Narrator reads both, NVDA reports descriptions by default and ignores values, JAWS unfortunately seems to not read anything at all. I hope JAWS does have an option to speak descriptions somewhere, but I don't know where to find it. So, get_accDescription looks a bit better in the end.

Saga Musix

Saga Musix

2026-04-25 20:07

administrator   ~0006661

Hm, with Narrator get_accDescription doesn't seem to do anything here, that's why I thought that providing both would make sense.

a11cf0

a11cf0

2026-04-25 21:47

reporter   ~0006662

Last edited: 2026-04-25 22:11

Oops. Narrator indeed ignores it specifically on edit controls. These screen reader things are sometimes way too inconsistent. OK, it makes sense to provide both then.
BTW, since the label order is now right, the suffix on the "grid segments" field is now looking a bit redundant, it's label being the same.
Also, it might be possible to label the second edit field via get_accName.

Saga Musix

Saga Musix

2026-04-26 10:56

administrator   ~0006663

Last edited: 2026-04-26 10:57

r25275 now removes the suffix, and adds get_accName to both input fields. It also adds a name to unit dropdown to make it clear what the dropdown changes. This change has also been made to the "Add Silence" dialog since it follows a similar pattern.

a11cf0

a11cf0

2026-04-26 21:58

reporter   ~0006664

Great. The only little oddity I see is that some suffix-less edit fields (e.g., "Grid segments") now have redundant descriptions identical to their contents. It might be better to drop them.

Saga Musix

Saga Musix

2026-04-27 17:54

administrator   ~0006665

I don't hear that with Narrator. The problem might be that when setting any of the get_acc* properties, the leading text field is no longer read out as a label with Narrator, so I added a custom get_accName to the grid segments field to replace that. I guess that's why you might hear it twice with other screen readers?

BTW, I have also improved input field readouts in the various export dialogs (stream/MIDI/OPL) in r25277-

Saga Musix

Saga Musix

2026-04-27 18:47

administrator   ~0006666

Last edited: 2026-04-27 18:53

I don't hear that with Narrator. The problem might be that when setting any of the get_acc* properties, the leading text field is no longer read out as a label with Narrator, so I added a custom get_accName to the grid segments field to replace that. I guess that's why you might hear it twice with other screen readers?

D'oh, there was a stupid bug that required get_accName to be set. You should no longer get those double announcement in r25294.

a11cf0

a11cf0

2026-04-28 09:11

reporter   ~0006667

Double speaking is caused by get_accDescription, not by get_accName. This is why it doesn't happen with Narrator. The problem is that currently get_accDescription calls get_accValue even if there is no suffix.

Issue History

Date Modified Username Field Change
2026-04-21 19:37 a11cf0 New Issue
2026-04-21 19:39 Saga Musix Assigned To => Saga Musix
2026-04-21 19:39 Saga Musix Status new => assigned
2026-04-21 19:41 Saga Musix Status assigned => feedback
2026-04-21 19:41 Saga Musix Note Added: 0006648
2026-04-22 09:18 a11cf0 Note Added: 0006655
2026-04-22 09:18 a11cf0 Status feedback => assigned
2026-04-22 20:42 Saga Musix Status assigned => feedback
2026-04-22 20:42 Saga Musix Note Added: 0006656
2026-04-23 13:10 a11cf0 Note Added: 0006657
2026-04-23 13:10 a11cf0 Status feedback => assigned
2026-04-23 16:35 Saga Musix Status assigned => feedback
2026-04-23 16:35 Saga Musix Note Added: 0006658
2026-04-23 16:35 Saga Musix Note Edited: 0006658
2026-04-24 10:16 a11cf0 Note Added: 0006659
2026-04-24 10:16 a11cf0 Status feedback => assigned
2026-04-25 20:07 Saga Musix Note Added: 0006661
2026-04-25 20:07 Saga Musix Status assigned => feedback
2026-04-25 21:47 a11cf0 Note Added: 0006662
2026-04-25 21:47 a11cf0 Status feedback => assigned
2026-04-25 22:11 a11cf0 Note Edited: 0006662
2026-04-26 10:56 Saga Musix Status assigned => feedback
2026-04-26 10:56 Saga Musix Note Added: 0006663
2026-04-26 10:57 Saga Musix Note Edited: 0006663
2026-04-26 21:58 a11cf0 Note Added: 0006664
2026-04-26 21:58 a11cf0 Status feedback => assigned
2026-04-27 17:54 Saga Musix Note Added: 0006665
2026-04-27 18:47 Saga Musix Note Added: 0006666
2026-04-27 18:53 Saga Musix Note Edited: 0006666
2026-04-28 09:11 a11cf0 Note Added: 0006667