mcpField
C
ci-integration

ci-integration

github.com/community-accessテスト・品質429206 回インストール今日更新
リポジトリ

ci-integration について

CI/CD に自動アクセシビリティ検査を組み込むチーム向けのスキルです。axe-core CLI や Lighthouse CI の設定、SARIF、ベースライン管理、複数 CI プラットフォーム向けテンプレートを扱います。

主な機能

  1. 01axe-core CLI スキャンの資料
  2. 02WCAG 2.2 AA タグ設定
  3. 03SARIF 結果と PR 注釈
  4. 04ベースライン比較と回帰ゲート
  5. 05複数 CI 向けテンプレート
  6. 06重大度マッピングとゲート戦略

活用シーン

  1. 01CI で自動アクセシビリティ検査を実行
  2. 02新たな違反だけをマージ阻止
  3. 03GitHub PR で行内注釈を確認
  4. 04Azure DevOps または GitLab CI を設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/community-access/accessibility-agents --skill ci-integration

インストール後、Claude Code で/ci-integrationを入力して読み込まれたか確認します。

詳細

スキル:CI 統合

分野: CI/CD アクセシビリティパイプラインの設定
このスキルを使用するエージェント: ci-accessibility、web-accessibility-wizard、accessibility-lead


目的

自動アクセシビリティスキャンを CI/CD パイプラインに統合するためのパターン、テンプレート、リファレンスデータです。axe-core CLI、Lighthouse CI、SARIF 出力、ベースライン管理、マルチプラットフォームの設定を扱います。


axe-core CLI リファレンス

インストール
npm install --save-dev @axe-core/cli
WCAG 2.2 AA タグセット
npx axe <url> --tags wcag2a,wcag2aa,wcag21a,wcag21aa,wcag22aa
出力形式
フラグ出力
--reporter jsonJSON の結果を標準出力に出力
--reporter sarifコードスキャン用の SARIF 形式
--reporter html人が読みやすい HTML レポート
--save <file>結果をファイルに保存
終了コード
コード意味
0違反は見つかりませんでした
1違反が見つかりました
2スキャンの実行中にエラーが発生しました

ベースラインのパターン

目的

ベースラインがないと、既存のすべての違反によって CI が失敗し、既存アプリへの導入が不可能になります。ベースラインを設定すると、CI のゲートで回帰のみを防止できます。

ベースラインファイルのスキーマ(axe-baseline.json)
{
  "version": "1.0",
  "timestamp": "2026-03-22T00:00:00Z",
  "tool": "@axe-core/cli",
  "tags": "wcag2a,wcag2aa,wcag21a,wcag21aa,wcag22aa",
  "violations": {
    "color-contrast": { "count": 12, "pages": ["index.html", "about.html"] },
    "image-alt": { "count": 3, "pages": ["gallery.html"] },
    "label": { "count": 5, "pages": ["contact.html", "signup.html"] }
  },
  "total": 20
}
比較ロジック
current_violations = run_axe_scan()
baseline = load("axe-baseline.json")

new_violations = current_violations - baseline
if new_violations.count > 0:
    FAIL PR — "N new accessibility violations introduced"
else:
    PASS — "No new violations (M existing in baseline)"

GitHub Actions テンプレート

name: Accessibility Check
on:
  pull_request:
    paths: ['**/*.html', '**/*.jsx', '**/*.tsx', '**/*.vue', '**/*.svelte']

jobs:
  a11y:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 22 }
      - run: npm ci
      - run: npx axe $(git diff --name-only HEAD~1 --diff-filter=ACMR -- '*.html' | tr '\n' ' ') --tags wcag2a,wcag2aa,wcag21a,wcag21aa,wcag22aa --reporter json --save results.json
      - name: Check results
        run: |
          violations=$(jq '[.[].violations[]] | length' results.json)
          echo "Found $violations violations"
          if [ "$violations" -gt 0 ]; then exit 1; fi

SARIF 統合

SARIF(静的解析結果交換フォーマット)を使用すると、GitHub の PR 差分にインライン注釈を表示できます。

アップロード手順
- uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: results.sarif
    category: accessibility
メリット
  • 違反箇所が PR 差分の該当行にインライン注釈として表示されます
  • 結果は「Security」→「Code Scanning」タブで確認できます
  • 違反の傾向を時系列で追跡できます
  • 誤検出を却下するワークフローに対応しています

ゲート戦略

戦略ブロック条件最適な用途
厳格あらゆる違反(すべての重要度)新規のグリーンフィールドプロジェクト
標準クリティカルおよび重大な違反のみアクセシビリティのベースラインが良好な進行中のプロジェクト
ベースライン新たな違反のみ(回帰)既存コードベースへの導入
警告ブロックせず、コメントのみ認知を高める段階、段階的な導入

マルチプラットフォームテンプレート

Azure DevOps
trigger:
  paths:
    include: ['**/*.html', '**/*.jsx', '**/*.tsx']

pool:
  vmImage: 'ubuntu-latest'

steps:
  - task: NodeTool@0
    inputs: { versionSpec: '22.x' }
  - script: npm ci && npx axe $(Build.SourcesDirectory)/index.html --tags wcag2a,wcag2aa
    displayName: 'Accessibility Scan'
GitLab CI
accessibility:
  image: node:22
  script:
    - npm ci
    - npx axe $CI_PROJECT_DIR/index.html --tags wcag2a,wcag2aa
  only:
    changes: ['**/*.html', '**/*.jsx', '**/*.tsx']

重要度のマッピング

axe-core の影響度CI の優先度対応
criticalp1-blockerマージを必ずブロック
seriousp2-highマージをブロックすることを推奨
moderatep3-mediumPR コメントで警告
minorp4-low情報のみ

コメント