Manual accessibility review
The RC Stability Matrix is validated, but the 1.0.0-rc.1 promotion remains blocked until the human accessibility review is recorded. This step complements axe automation, keyboard tests and visual snapshots with a real screen-reader, zoom and reflow review.
Scope
The review targets @vevedh/qform-builder-layer@0.1.35 as the source baseline for 1.0.0-rc.1. It must cover the builder, viewer, dialogs, Theme Builder, import/export, history, left/right QSplitters, the visual custom-component designer, safe styles, the property editor and the readonly / disabled states.
The ledgers to keep up to date are:
release/manual-accessibility-review.json
release/accessibility-derogations.jsonRequired scenarios
Each scenario must be marked passed, failed or not-applicable in release/manual-accessibility-review.json:
| Identifier | Expected check |
|---|---|
keyboard-only | Full keyboard-only navigation, action activation, coherent focus order and focus return after dialogs. |
zoom-200 | Usage at 200 percent zoom, without losing primary actions or creating blocking overlap. |
reflow-320-css-px | Rendering at 320 CSS px width, without functional horizontal scrolling in panels. |
nvda-chromium | NVDA with Chromium: accessible names, selected states, duplication/removal/move announcements. |
custom-theme-contrast | Real contrast after changing the theme, including buttons, badges and disabled states. |
artifact-review | Review of screenshots, the bundle report and package evidence before promotion. |
Recommended order
- Start the local playground or a host application with the validated package.
- Test
keyboard-onlyfirst, because it quickly exposes focus and tab-order errors. - Test
nvda-chromiumon the same areas: catalog, canvas, tree, properties, preview and dialogs. In the Custom components tab, create a definition, insert it, edit its title and numeric value in the right panel, verify the runtime rendering, then remove the definition from the registry. - Move the browser to 200 percent zoom and verify responsive panels.
- Reduce the viewport to 320 CSS px and check that the canvas, drawers and dialogs remain usable.
- Apply a custom theme, then check visible contrasts.
- Review the RC artifacts before marking
artifact-reviewaspassed.
Check command
The evidence schema is checked with:
bun run manual:accessibility:checkThis command does not replace the human review. It only prevents incomplete or inconsistent evidence from being published.
Recording a successful review
When the review is complete, fill:
{
"reviewedSourceVersion": "0.1.35",
"reviewerRole": "maintainer-accessibility-review",
"reviewedAt": "2026-07-09T00:00:00Z",
"outcome": "passed",
"checks": {
"keyboard-only": "passed",
"zoom-200": "passed",
"reflow-320-css-px": "passed",
"nvda-chromium": "passed",
"custom-theme-contrast": "passed",
"artifact-review": "passed"
}
}Do not use a personal name in reviewerRole. A role is enough to trace responsibility without publishing nominative information.
Derogations
If an issue remains open, record it in release/accessibility-derogations.json with a stable identifier, a reason, a mitigation and a review deadline. A derogation does not automatically make the RC publishable: the release ledger must still contain an explicit decision.
Visual designer and QSplitter in 0.1.35
The 0.1.35 review must also cover drag-and-drop composition, block ordering, safe style selectors and the Visual designer / Advanced JSON transition. Both QSplitter separators must work from the keyboard, retain visible focus and expose their bounds and current value. Verify restored widths, 200% zoom and 320 CSS px reflow without horizontal scrolling.