Repository navigation
Panel accessibility: every control has a name, keyboard focus is visible (#777) - #787
Merged
Merged
Conversation
…ble; self-test guards both (#777) Chromium's accessibility tree showed 139 unnamed controls (54 sliders, 53 switches, 21 lists, number and text boxes): each .ctrl had a label.lbl that was not tied to its control. A MutationObserver (direct, not rAF - rAF never runs in a background window) moves the label's text into span.lbl-t and points unnamed controls in the row at it with aria-labelledby, so the reset button stays out of the name and the translated text node is the name. Rows without a label use the preceding .group-label. Own names for the crossfader, Smart Silence Filter, MCP port and the timeline BPM/beats/snapping controls (EN strings added). Tabbing through the panel reached 606 elements; 68 showed no focus: range inputs (outline none, thumb changed only on hover), the export/update selects (an inline border overrode select:focus; now class sel-ctrl) and the lighting picker. Focus-visible styles added. Self-test: reads the accessibility tree per category with folds open and Tabs through every category; fails on unnamed controls or unchanged focus. Isolated profile: 872 named controls, 595 focusable elements, PASS. Tests 3238. Co-authored-by: caganturgut <271973834+caganturgut@users.noreply.github.com>
|
CaYaDraft — pull request Summary Files
README.md (modified, +2/-2) README.tr.md (modified, +2/-2) ROADMAP.md (modified, +1/-1) |
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #777, section 4.
Measured
Accessibility.getFullAXTreein every category, with folds open and a populated profile. 139 interactive controls had no name: 54 sliders, 53 switches/checkboxes, 21 selects, 6 number boxes and 4 text boxes. A screen reader announced only "slider". The cause:.ctrl > label.lblwas never tied to its control.Input.dispatchKeyEvent) and compared each focused element's computed look with an unfocused snapshot. 68 of 606 elements showed no change:outline: none, and the thumb changed only on hover;style.cssTextborder overrodeselect:focus;Change
MutationObserverinadmin.js:span.lbl-tand points the row's unnamed controls at it witharia-labelledby;.group-label.requestAnimationFrame, which never fires in a background window: the self-test caught that.input[type=range]:focus-visible(outline plus thumb ring) and.lighting-select-wrap:focus-visible. The select's inline style moved to asel-ctrlclass, soselect:focusapplies.Verified
npm test: 3238 passed (tests/a11y-panel.test.js, +4).