本文にスキップ
AI News HubLIVE
サイト内リライト3 分で読了

汎用アクセシビリティエージェントの構築 – その過程で学んだこと

記事の要約

GitHub は、エンジニアにリアルタイムのアクセシビリティ回答を提供し、本番環境に送られる前に簡単な問題を自動的に修正する実験的な汎用アクセシビリティエージェントを試験運用中です。このエージェントは 3,535 件のプルリクエストをレビューし、68% の解決率を達成。トップ 5 の問題は、構造の明確化、コントロールの命名、通知、テキスト代替、キーボードフォーカスの順序です。記事では、マインドセット、過去の課題の活用、サブエージェントアーキテクチャ、線形命令実行、テンプレート化されたコンテンツの受け渡し、複雑性とリスクパターンの処理に関する教訓を共有しています。

ソースGitHub AI & ML著者: Natalie Guevara
汎用アクセシビリティエージェントの構築 – その過程で学んだこと
誤りを報告

訂正窓口はまだ利用できません。記事情報をコピーして保存できます。

訂正案内
本文へ

GitHub は現在、実験的な汎用アクセシビリティエージェントを試験運用しています。このエージェントの主な目的は2つあります。1つ目は、GitHub Copilot CLI および VS Code 統合において、エンジニアにアクセシビリティに関する信頼できる即時の回答を提供すること。2つ目は、本番環境に送られる前に、シンプルで客観的なアクセシビリティ問題を自動的に検出し修正することです。特に2つ目の目的のために、エージェントはフロントエンドコードの変更を自動評価します。

これまでにエージェントは 3,535 件のプルリクエストをレビューし、68% の解決率を達成しました。発生頻度順に、上位5つの問題タイプは次のとおりです。

  • 支援技術に対して構造と関係性を明確にする
  • インタラクティブコントロールに明確で簡潔な名前を付ける
  • ユーザーが重要な通知を認識できるようにする
  • 非テキストコンテンツにテキスト代替を提供する
  • ページやビュー内でキーボードフォーカスを論理的な順序で移動する

これらの問題は、支援技術を利用するユーザーが GitHub を使用する際の障壁となっていたものであり、エージェントによって自動的に除去されています。

マインドセットとして、チームは障害の社会モデルを重視しています。アクセシビリティエージェントは単独で「アクセシビリティを解決」することを目指すのではなく、仲間の開発者の取り組みを補完し、GitHub のユーザーインターフェース構築方法によって生じる障壁を取り除く支援をします。エージェントは「銀の弾丸」ではなく、その責任範囲を明確にすることで実験の立ち上げを加速し、賛同を得ることができました。

過去の取り組みとして、GitHub にはアクセシビリティ問題を記録・検証する成熟したシステムがあります。問題は構造化されたテンプレートで報告され、再現手順、重大度、サービスエリア、該当する WCAG 達成基準などのメタデータ、および修正 PR へのクロスリンクが含まれます。これらの一貫性と構造化されたデータは、LLM ツールの台頭前から存在していましたが、アクセシビリティエージェントが参照する理想的なコーパスとなりました。エージェントはこれらの問題を調査し、関連するコードや言語スニペットを抽出するよう指示されています。ここでは LLM の非決定的なファジーマッチング動作が資産として機能しています。

エージェントの効率的なトークン消費のために、サブエージェントアーキテクチャを採用しました。最初は単一のモノリシックエージェントでしたが、すぐに限界に達したため、2つの専用サブエージェントを使用するよう進化しました。

  • 第1のサブエージェント:パッシブなレビュー担当兼研究者
  • 第2のサブエージェント:アクティブな実装担当

両サブエージェントはサンドボックス化され、直接コンテンツをやり取りせず、構造化されたテンプレート出力を生成します。この出力は親エージェントが消費、検証、ルーティングします。このアプローチにより、エスカレーションチェックポイント、複雑性ベースの動作、フィルタリング、トレーサビリティが実現されます。

また、命令を線形順序で実行するようエージェントに強制することが重要でした。最初に親の一連のフェーズを確立し、各フェーズには子の順序付き手順が含まれ、関連リソースとスキルが付随します。この線形順序は、人間が監査、修正、報告を行う方法を反映しています。

テンプレートスキーマファイルを使用してサブエージェント間のコンテンツ受け渡しを統一しました。レビュー用と実装用の2つのスキーマがあり、これにより一貫性が生まれ、無駄なトークン消費や幻覚、不必要なコード変更を防ぎます。

制限を認識することも重要です。エージェントはターンキーソリューションではないため、誤った出力が人間に十分に検証されないリスクを避ける必要があります。そこで以下の対策を講じています。

  • コード複雑性評価:小さなシェルスクリプトでコードの相対的な複雑性をスコア化し、閾値を超えた場合はコード変更を実行せず、アクセシビリティチームへの相談を促す。
  • 高リスクパターンの特定:ドラッグアンドドロップ、トースト、リッチテキストエディター、ツリービュー、データグリッドなど、LLM の現在の能力では適切に生成できないパターンについてはコード生成を回避する。
  • バイアスの低減:人間の専門知識が必要な場合にコード生成を行わないよう、LLM が指示を回避する手口を防ぐアンチゲーム指示を作成。

なお、プログラムで判断可能な問題はすべてをカバーするわけではありません。55の WCAG レベル A および AA 達成基準のうち、エージェントが対応できるのは一部に限られます。GitHub は今後もこの実験から得た成功と教訓を共有し、他のチームのアクセシビリティ向上に役立てることを目指しています。

要点と分析を開く

記事インテリジェンス

エンジニア上級

要点

  • GitHub が汎用アクセシビリティエージェントを試験運用中。エンジニア支援と一般的な問題の自動修正を目指す。
  • エージェントは 3,535 件の PR をレビューし、解決率 68%。主な問題は構造、命名、通知、テキスト代替、キーボード操作。
  • サブエージェント(レビュアーと実装者)を採用し、線形命令実行とテンプレートスキーマで効率を向上。
  • コード複雑性スコアと高リスクパターン検出により制限を管理し、信頼性の低い出力を防止。

要点と分析は自動生成され、誤りを含む場合があります。原典をご確認ください。