ultra11y — RGAA 4.1.2 の監査とアクセシブルな記述
アクセシビリティにおいて、自動ツールは問題の一部しか見えません。
ultra11y は役割分担によってこれを前提としています。ゼロ依存の決定論的エンジン(node scripts/ultra11y.mjs <コマンド> — npm install もキーも不要)が機械的な処理 — 機械検証可能な非準拠を検出し、適切な RGAA 基準に紐付ける — を担当し;あなたが判断 — 代替テキストの妥当性、コンテキスト内ラベル、読み上げ順序 — や描画が必要な基準(コントラスト、フォーカス、ズーム)を担当します。幻覚による非準拠が残るのを防ぐゲートがあります。
コアルール:
- 非準拠を決して発明しない:各
NCは実際の解決可能な要素を引用します(checkで検証)。- まずネイティブ HTML、ARIA は最後;暗黙のセマンティクスを重複させないでください。
- 残差は明示的に:描画/判断基準で証明されていないものはすべて「手動評価が必要」に入り、黙って準拠とマークされることはありません。
状況に応じた選択
- 「監査/準拠レポート」 →
node scripts/ultra11y.mjs audit … --json、次にreport、次にcheck;references/audit.mdを参照。 - 「大規模リポジトリで/スマート監査」 → 焦点を絞る:
--changed(git diff)、テンプレートの優先順位付け、重複排除、--max-files;references/scale.mdを参照。 - 「修正を適用する」 →
fix(デフォルトはドライラン、--writeで安全な修正を適用、残りは発明せずに提案);references/fix.mdを参照。 - 「リポジトリでの自動ガード(フック/CI)」 →
init --hook/--ci/--baseline(新しい非準拠のみで失敗);references/automation.mdを参照。 - 「このコードをアクセシブルにする/レビューする」 → スニペットを監査(
audit - < コンポーネント.html)し、ネイティブ優先に従う;references/authoring.mdとreferences/forbidden-patterns.mdを参照。 - 「基準 X の意味/テーマは何か」 →
criteria;references/criteria.mdを参照。 - 「国際規格(WCAG / EN 301 549 / Section 508)」 →
report/criteriaで--standard wcag;references/methodology.mdを参照。 - 「高保証監査」 →
verify --report … --semantic;references/verify.mdを参照。方法論と形式:references/methodology.md。 - 「コントラスト/描画の確認(オプションの Docker ティア)」 →
scan <URL> --merge …(ヘッドレスブラウザ内の axe-core);references/dynamic.mdを参照。
コマンド早見表
node scripts/ultra11y.mjs audit "src/**/*.html" --json > audit.json
node scripts/ultra11y.mjs audit - < コンポーネント.html # 標準入力からの HTML
node scripts/ultra11y.mjs audit "src/**/*.tsx" --jsx # JSX/TSX(ベストエフォート)
node scripts/ultra11y.mjs audit --changed --json # git diff のみ(大規模リポジトリ)
node scripts/ultra11y.mjs report --in audit.json --out audits
node scripts/ultra11y.mjs report --in audit.json --standard wcag # WCAG ビュー(表示用)
node scripts/ultra11y.mjs criteria 11.1 # 基準 + そのテスト
node scripts/ultra11y.mjs criteria --theme 8 --list # テーマ/リスト
node scripts/ultra11y.mjs check --report audits/rgaa-AAAA-MM-JJ.md
node scripts/ultra11y.mjs verify --report audits/rgaa-AAAA-MM-JJ.md --semantic
node scripts/ultra11y.mjs fix "src/**/*.html" # ドライラン;--write で適用
node scripts/ultra11y.mjs init --hook --baseline # 回帰ガード(フック + ベースライン)
node scripts/ultra11y.mjs scan https://example.jp --merge audits/audit-latest.json # Docker ティア
--json でどこでも機械可読出力。デフォルトはフランス語レポート、--lang en 利用可能。
エンジン、判断、残存リスクの組み合わせ
audit 出力は各基準を分類します:静的サブセットについては C/NC/NA;描画/判断基準(residualRisks にリスト)については manual。エンジンの NC は確認済み候補です(ファイル:行 で引用)。manual 基準の判断と、描画基準の「手動確認が必要」マーク付けはあなたの責任です。レポートが完全になるのは、該当するすべての基準が正当な C/NC/NA を持ち、すべての残存リスクが名前付けられた場合のみです。
やってはいけないこと
- エンジンが見つけず、自分でも確認できない非準拠を発明すること(インラインリテラル色のコントラストは静的判定済み;計算されたコントラスト — 外部 CSS、変数 — は
scan(Docker ティア)または描画時に確認してから宣言)。 - ネイティブセマンティクスを重複させる ARIA を追加すること。
- 人間による確認なしに描画/判断基準を「準拠」とマークすること。
references/criteria.mdを手動で編集すること(リポジトリから生成)。
範囲
静的エンジン:オフライン、決定論的、ゼロ依存;入力は HTML + JSX/TSX(ベストエフォート)+ 標準入力。描画基準(計算されたコントラスト、リフロー)はオプションの scan ティア(Docker 内の axe-core)でカバー;可視フォーカス、200% テキストズーム、ホバーコンテンツは人間のレビューに残ります(残存リスク)。データ:RGAA 4.1.2 © DINUM、Licence Ouverte / Etalab 2.0(NOTICE 参照)。