Skip to content

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:

text
release/manual-accessibility-review.json
release/accessibility-derogations.json

Required scenarios

Each scenario must be marked passed, failed or not-applicable in release/manual-accessibility-review.json:

IdentifierExpected check
keyboard-onlyFull keyboard-only navigation, action activation, coherent focus order and focus return after dialogs.
zoom-200Usage at 200 percent zoom, without losing primary actions or creating blocking overlap.
reflow-320-css-pxRendering at 320 CSS px width, without functional horizontal scrolling in panels.
nvda-chromiumNVDA with Chromium: accessible names, selected states, duplication/removal/move announcements.
custom-theme-contrastReal contrast after changing the theme, including buttons, badges and disabled states.
artifact-reviewReview of screenshots, the bundle report and package evidence before promotion.
  1. Start the local playground or a host application with the validated package.
  2. Test keyboard-only first, because it quickly exposes focus and tab-order errors.
  3. Test nvda-chromium on 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.
  4. Move the browser to 200 percent zoom and verify responsive panels.
  5. Reduce the viewport to 320 CSS px and check that the canvas, drawers and dialogs remain usable.
  6. Apply a custom theme, then check visible contrasts.
  7. Review the RC artifacts before marking artifact-review as passed.

Check command

The evidence schema is checked with:

powershell
bun run manual:accessibility:check

This 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:

json
{
  "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.

QForm Builder — Nuxt 4, Quasar and FormKit layer for dynamic forms.