Enable vuejs-accessibility lint rules and remediate violations across Vue files#14640
Open
rtibblesbot wants to merge 8 commits into
Open
Enable vuejs-accessibility lint rules and remediate violations across Vue files#14640rtibblesbot wants to merge 8 commits into
rtibblesbot wants to merge 8 commits into
Conversation
Contributor
npm Package VersionsWarning The following packages have changed files but no version bump:
If these changes affect published code, consider bumping the version. |
Contributor
Build Artifacts
Smoke test screenshot |
c4c8e82 to
dfa36f5
Compare
dfa36f5 to
cf09194
Compare
cf09194 to
9b5a1c2
Compare
Adds eslint-plugin-vuejs-accessibility v2.5.0 as a dependency of kolibri-format, spreads flat/recommended into eslint.config.mjs (after pluginJestDom, before eslintConfigPrettier), and bumps the kolibri-format version from 2.2.0 to 2.3.0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Running kolibri-format --write during the a11y remediation pass also fixed pre-existing formatting violations in three kolibri-build files. Committed separately so the a11y diff stays uncluttered. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…g elements Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… focus management Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ents Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…media captions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…th form controls Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…focus management Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
9b5a1c2 to
a417a09
Compare
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.
Plan: Enable
eslint-plugin-vuejs-accessibilityinkolibri-format's ESLint flat config and remediate all resulting violations across the ~612 Vue files in the codebase.alt-textviolationsclick-events-have-key-eventsviolationsno-static-element-interactionsviolationsmouse-events-have-key-eventsviolationsinteractive-supports-focusviolationslabel-has-forviolationsSummary
Enable
eslint-plugin-vuejs-accessibilityinkolibri-formatand remediate the resulting violations across Kolibri's Vue files.eslint-plugin-vuejs-accessibility@^2.5.0tokolibri-format.flat/recommendedpreset ineslint.config.mjs..vuefiles:alt-text,click-events-have-key-events,no-static-element-interactions,mouse-events-have-key-events,interactive-supports-focus,label-has-for,iframe-has-title,media-has-caption.no-autofocusviolations suppressed with inline disables — every instance is intentional focus management (first input in a modal, picture-password selector autofocus).kolibri-formatauto-fixes tokolibri-build(import ordering, arrow-function parens, trailing commas) — triggered by pre-commit when the ESLint config was updated; no semantic changes.Note on screenshots: all template changes add ARIA attributes and keyboard handlers with no visual effect. A dev server was not available in this environment; the verifiable evidence is
pnpm run lint-frontendpassing with zerovuejs-accessibilityerrors.References
Closes #14637
Reviewer guidance
Run
pnpm run lint-frontend— should exit 0 with novuejs-accessibilityerrors.Risky areas:
SafeHtmlImage.vue/Lightbox.vue: keyboard focus management added (tab-trap, focus restoration on close) — verify focus trap and restoration behave correctly in the presentation player.no-autofocusinline disables: confirm each suppressed instance is genuinely intentional focus-on-open behaviour, not noise suppression.AI usage
Implemented with Claude Code. Violations were catalogued by rule frequency, fixed category-by-category in separate commits, and each file was verified with
pre-commit run --filesbefore staging.@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?