mcpField
L
lighthouse-scanner

lighthouse-scanner

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

lighthouse-scanner について

lighthouse-scannerは、アクセシビリティレビュー向けのスキルで、Lighthouse CIの結果の検出と解釈を支援します。スコアや監査違反、実行間の変化をローカルのaxe-coreスキャンと照合します。

主な機能

  1. 01Lighthouse CIのワークフローと設定の検出
  2. 02アクセシビリティスコアと監査結果の解析
  3. 03Lighthouseとaxe-coreの検出結果の照合
  4. 04スコア変化による回帰の特定
  5. 05GitHub Actions成果物からのレポート抽出

活用シーン

  1. 01リポジトリのLighthouse CI設定の確認
  2. 02URLごとのアクセシビリティ監査の集約
  3. 03ローカルスキャンとCI検出結果の比較
  4. 04アクセシビリティスコア低下の確認

インストール

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

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

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

詳細

Lighthouse CI アクセシビリティ統合

Lighthouse CI とは?

Lighthouse CI は、CI パイプラインで Google Lighthouse の監査を実行するためのツール群です。最も一般的な GitHub Actions との統合では、treosh/lighthouse-ci-action を使用します。

Lighthouse は次の機能を提供します。

  • パフォーマンス、アクセシビリティ、ベストプラクティス、SEO のスコア(0~100)
  • 合否ステータスと詳細な検出結果を含む、個々の監査結果
  • 回帰時にビルドを失敗させるためのスコア予算とアサーション
  • HTML および JSON のレポートアーティファクト
  • 傾向を追跡するための、実行間のスコア比較

アクセシビリティに関する重点項目: Lighthouse のアクセシビリティカテゴリでは、axe-core ルールの一部を実行し、重み付けされた 0~100 のスコアと、個々の監査での違反を報告します。

Lighthouse CI の導入状況の検出

ワークフローファイルの検出

Lighthouse CI を参照しているワークフローファイルを検索します。

# Search for the treosh Lighthouse CI action
grep -rl "treosh/lighthouse-ci-action" .github/workflows/

# Search for official Lighthouse CI CLI usage
grep -rl "lhci autorun\|lighthouse-ci" .github/workflows/

YAML 内で照合するパターン:

- uses: treosh/lighthouse-ci-action@v12
設定ファイルの検出

Lighthouse CI では、リポジトリのルートにある設定ファイルを使用します。

# Check for Lighthouse CI config files
ls lighthouserc.js lighthouserc.json .lighthouserc.js .lighthouserc.json .lighthouserc.yml 2>/dev/null
設定ファイル形式
lighthouserc.jsJavaScript モジュール
lighthouserc.jsonJSON
.lighthouserc.jsJavaScript モジュール(ドットファイル)
.lighthouserc.jsonJSON(ドットファイル)
.lighthouserc.ymlYAML(ドットファイル)
設定の構造

Lighthouse CI 設定の主なフィールド:

{
  "ci": {
    "collect": {
      "url": ["https://example.com", "https://example.com/about"],
      "numberOfRuns": 3
    },
    "assert": {
      "assertions": {
        "categories:accessibility": ["error", {"minScore": 0.9}]
      }
    },
    "upload": {
      "target": "temporary-public-storage"
    }
  }
}
セクション目的エージェントでの用途
ci.collect.url監査する URLCI スキャンの対象範囲
ci.collect.numberOfRuns各 URL の実行回数信頼性の指標
ci.assert.assertionsスコア予算としきい値回帰の検出
ci.upload.targetレポートの保存先レポートの取得

Lighthouse のアクセシビリティ結果の解析

アクセシビリティスコア

Lighthouse は、個々の監査結果に基づいて、重み付けされた 0~100 のアクセシビリティスコアを算出します。

スコア範囲評価解釈
90~100Aアクセシビリティは良好です
70~89B~C対処すべき問題があります
50~69D重大な問題があります
0~49Fアクセシビリティに重大な問題があります
個々の監査結果

Lighthouse の各アクセシビリティ監査は、axe-core のルールに対応しています。

監査 IDaxe-core ルールWCAG 基準重み
image-altimage-alt1.1.110
color-contrastcolor-contrast1.4.37
labellabel1.3.17
button-namebutton-name4.1.27
link-namelink-name2.4.47
html-has-langhtml-has-lang3.1.17
document-titledocument-title2.4.27
heading-orderheading-order1.3.13
meta-viewportmeta-viewport1.4.410
bypassbypass2.4.17
tabindextabindex2.4.37
aria-allowed-attraria-allowed-attr4.1.210
aria-hidden-bodyaria-hidden-body4.1.210
aria-required-attraria-required-attr4.1.210
aria-rolesaria-roles4.1.27
aria-valid-attr-valuearia-valid-attr-value4.1.27
aria-valid-attraria-valid-attr4.1.210
重大度のマッピング

Lighthouse は影響度レベルではなく重みを使用します。重みと監査の合否に基づいて、エージェントの重大度モデルにマッピングします。

Lighthouse の重み監査ステータスエージェントの重大度
10FailCritical
7FailSerious
3FailModerate
1FailMinor
任意PassN/A(報告対象外)

ローカルスキャンとの相関

Lighthouse と axe-core の対応付け

Lighthouse は内部で axe-core を使用しているため、簡単に対応付けできます。

  1. 監査/ルール ID で照合: Lighthouse の監査 ID は axe-core のルール ID に直接対応します
  2. URL で照合: Lighthouse の設定にあるスキャン対象 URL とローカルのスキャン対象を比較します
  3. 信頼度を高める: Lighthouse CI とローカルの axe-core スキャンの両方で確認された検出結果には、high の信頼度が付与されます
ソースの比較
シナリオ解釈対応
Lighthouse とローカルスキャンの両方で検出信頼度が高い信頼度が高いと報告し、重大度の重みをすべて適用します
Lighthouse のみで検出環境固有信頼度が中程度と報告し、「CI のみで検出」と記載します
ローカルスキャンのみで検出Lighthouse の対象範囲外信頼度が中程度と報告し、「ローカルのみで検出」と記載します
Lighthouse のスコアが低下新たなアクセシビリティの問題が発生リグレッションとしてフラグを付け、レポートで優先します

スコアのリグレッション検出

実行ごとの Lighthouse アクセシビリティスコアを追跡して、リグレッションを検出します。

スコアの比較
{
  "url": "https://example.com",
  "previousScore": 95,
  "currentScore": 87,
  "delta": -8,
  "status": "regressed",
  "newFailures": ["color-contrast", "image-alt"],
  "newPasses": []
}
リグレッションのしきい値
差分重大度対応
スコアが 10 ポイント以上低下重大直ちに対応します。複数の違反が新たに発生している可能性があります
スコアが 5~9 ポイント低下深刻新たな違反が発生しています。マージ前に確認します
スコアが 1~4 ポイント低下中程度軽微なリグレッションです。フォローアップ対象として記録します
スコアに変化なし、または向上該当なしリグレッションは検出されませんでした

構造化出力形式

lighthouse-bridge が Lighthouse データを正規化すると、次の形式で検出結果が生成されます。

{
  "source": "lighthouse-ci",
  "ruleId": "color-contrast",
  "wcagCriterion": "1.4.3",
  "wcagLevel": "AA",
  "severity": "serious",
  "confidence": "high",
  "url": "https://example.com/login",
  "element": "button.submit-btn",
  "description": "Element has insufficient color contrast ratio",
  "lighthouseWeight": 7,
  "lighthouseScore": {
    "overall": 87,
    "previousOverall": 95,
    "delta": -8,
    "status": "regressed"
  }
}

GitHub Actions との統合

treosh/lighthouse-ci-action

最も一般的に使用されている Lighthouse CI の GitHub Action です。

- name: Run Lighthouse CI
  uses: treosh/lighthouse-ci-action@v12
  with:
    urls: |
      https://example.com
      https://example.com/about
    uploadArtifacts: true
    configPath: ./lighthouserc.json
Action の入力
入力必須説明
urlsはい(または設定ファイルで指定)監査対象 URL を改行区切りで指定します
configPathいいえLighthouse CI の設定ファイルへのパス
uploadArtifactsいいえHTML レポートをワークフローのアーティファクトとしてアップロードします
temporaryPublicStorageいいえ共有用に一時的なパブリックストレージへアップロードします
runsいいえURL ごとの実行回数(デフォルト:1)
budgetPathいいえLighthouse の予算 JSON ファイルへのパス
アーティファクトからの結果の抽出

Lighthouse CI は結果をワークフローのアーティファクトとしてアップロードします。スコアを取得するには、次の手順を実行します。

  1. ワークフローの実行からアーティファクトをダウンロードします
  2. JSON レポートファイルを解析します
  3. 総合スコアとして categories.accessibility.score を抽出します
  4. 違反として個別の audits.{audit-id} の結果を抽出します

コメント