アクセシビリティインスペクター

アクセシビリティインスペクターは、アクセシビリティツリーによって現在のページで支援技術に公開される重要な情報へアクセスする手段を提供して、欠けている情報やほかに注意が必要なことを確認できます。この記事では、アクセシビリティインスペクターの主な機能や使用方法を説明します。

アクセシビリティの (とても) 簡単なガイド

アクセシビリティは、可能な限り多くの人々があなたのウェブサイトを利用できるようにするための慣習です。これは利用者の障がいや、使用する端末・ネットワーク速度・地理的な位置といった個人の状況によって情報へアクセスできない状態にしないように、最善を尽くすことです。

ここでは主に、視覚障がいを持つ人々に情報を提供すること (これはウェブブラウザーで使用できる accessibility API で実現します) について扱います。それは、あなたのページでさまざまな要素がどのような役割を持つかという情報を提供します (例えば単純なテキスト、ボタン、リンク、フォーム要素など)。

セマンティック DOM 要素はデフォルトで、その用途を示唆する役割が割り当てられています。しかし、時には複雑な独自のコントロールを作成するためにセマンティックではないマークアップ (例えば <div>) を使用しなければならず、これは用途を反映するデフォルトの役割を持っていません。このような状況では、自身の役割を与えるために WAI-ARIA ロール属性を使用できます。

ブラウザーの accessibility API によって公開される役割やほかの情報は、アクセシビリティツリーと呼ばれる階層構造で提供されます。これは DOM ツリーに少し似ていますが、含まれる要素一式がより制限されており、またツリーが持つ情報も若干異なっています。

スクリーンリーダーなどの支援技術は、ウェブページに何があるかを見つけるためにこの情報を使用して、ユーザーにそれが何であるかを伝えて、ページと対話できるようにします。開発ツールのアクセシビリティインスペクターもこの情報を使用して、価値があるアクセシビリティのデバッグ機能を提供します。

アクセシビリティインスペクターにアクセスする

アクセシビリティインスペクター (Firefox 61 から使用可能) は、デフォルトで開発ツールに表示されていません。有効化するには開発ツールの設定 (F1 を押下するか、"三点リーダー" メニューで 設定 を選択する) を開いて、標準の開発ツールアクセシビリティ チェックボックスにチェックを入れてください。これにより開発ツールに アクセシビリティ タブが現れます。タブをクリックすると、アクセシビリティパネルを表示します:

Accessibility tab in firefox devtools, turned off, with a button labeled Turn On Accessibility Features

初期状態では開発ツールのアクセシビリティ機能を無効にしており (別のブラウザータブですでに有効にしている場合や、スクリーンリーダーのユーザーやテスターであるなどの理由で Firefox のアクセシビリティエンジンをすでに開始している場合を除きます)。これは、アクセシビリティ機能が有効であるときにバックグラウンドでアクセシビリティエンジンを実行するためです。エンジンを実行すると、パフォーマンスが低下してメモリ消費が増えます。それにより、メモリーパフォーマンス といったほかのパネルの測定を妨げたり、ブラウザー全体のパフォーマンスが低下したりします。このため、特に使用しないときはアクセシビリティ機能を無効にしておくべきです。

[アクセシビリティ機能を有効にする] ボタンを押すと、アクセシビリティ機能を有効にします。

パネルの内容が読み込まれたら、左上にある [アクセシビリティ機能を無効にする] ボタンを押すと再び無効にできます。ただし、スクリーンリーダーを使用するためにアクセシビリティエンジンがすでに動作していた場合は除きます。この場合はボタンが使用できません。

注記: 複数のタブでアクセシビリティ機能を使用している場合は、あるタブで無効にするとすべてのタブで無効になります。

アクセシビリティパネルの機能

アクセシビリティパネルを有効にすると以下のようになります:

Accessibility tab in firefox devtools, turned on, showing two information panels plus a button labeled Turn Off Accessibility Features

左側に、現在のページのアクセシビリティツリー内のすべてのアイテムを表す樹形図があります。入れ子の子孫を持つアイテムにはクリックして子孫を表示できる矢印がありますので、階層の深い部分へ移動できます。それぞれのアイテムで、2 つのプロパティを示します:

  • 役割 — ページ上でこのアイテムが持つ役割 (例えば pushbuttonfooter)。これはブラウザーが与えたデフォルトの役割か、WAI-ARIA の role 属性で与えた役割のいずれかです。
  • 名前 — ページ上でこのアイテムが持つ名前。これが何に由来するかは、要素によって異なります。例えばほとんどのテキスト要素の名前は単に textContent ですが、フォーム要素の名前は、その要素に関連付けられた <label> の内容物です。

右側には、選択中のアイテムに関する詳細情報を表示します。ここには以下のプロパティを表示します:

  • name — 前述した、アイテムの名前。
  • role — 前述した、アイテムの役割。
  • actions — アイテムで実行できるアイテムの一覧。例えば押しボタンでは "Press"、リンクでは "Jump" があります。
  • value — アイテムの値。この意味はアイテムの種類によって異なります。例えば入力フォーム (role: entry) ではフォームに入力された値、リンクでは対応する <a> 要素の href 属性にある URL です。
  • DOMNode — アクセシビリティツリー内のアイテムが表す、DOM ノードのタイプです。値の後ろにある "標的" のアイコンをクリックすると、ページインスペクター でノードを選択できます。"標的" のアイコンにマウスポインターを載せると、ページで DOM ノードをハイライト表示します。
    DOMNode property in accessibility inspector with target icon highlighted
  • description — 要素で提供された詳細説明。通常は title 属性の内容です。
  • help — これは Gecko で実装していませんので、常に空文字列を返します。Firefox 62 でインスペクターから削除する予定です (バグ 1467643)。
  • keyboardShortcut — 要素をアクティブにするために使用できるキーボードショートカットであり、accessKey 属性で指定します。これは Firefox 62 から正常に動作します (バグ 1467381)。
  • childCount — アクセシビリティツリーの階層で、現在のアイテムが持つ子孫の数です。
  • indexInParent — 親アイテムの中で何番目の子アイテムであるかを示すインデックスの値です。親アイテムの中で最初のアイテムである場合は 0 になります。2 番目のアイテムであれば 1 になります。以降も同じです。
  • states — 現在のアイテムに適用可能な、さまざまなアクセシビリティ関連の状態のリストです。例えば、あるデモの中のリンクのひとつは focusable、linked、selectable text、opaque、enabled、sensitive の状態を持ちます。内部状態の一覧については、Gecko states をご覧ください。
  • attributes — アイテムに適用されている、すべてのアクセシビリティ関連の属性の一覧です。これは margin-left や text-indent などスタイル関連の属性、ドラッグ可能やレベル (例えば見出しであれば、見出しのレベル) といったアクセシビリティ情報に関して役に立つ状態が含まれます。使用可能な状態の一覧については、Gecko object attributes をご覧ください。

注記: 公開される情報は、すべてのプラットフォームで同じです。インスペクターはプラットフォームのアクセシビリティ層の情報ではなく、Gecko のアクセシビリティツリーを公開します。

キーボード操作

アクセシビリティ タブは、キーボードで操作可能です:

  • Tab キーで [アクセシビリティ機能を無効にする] ボタンや左右のパネルを行き来できます。
  • いずれかのパネルにフォーカスがあるとき、上下矢印キーを使用してアイテムのフォーカスを上下に移動できます。また左右矢印キーを使用して、展開可能な行 (例えばアクセシビリティツリーのさまざまな階層レベル) の展開や折りたたみが可能です。

アクセシビリティ機能を有効にすると、開発ツールでいくつかの有用な追加機能を利用できます。ここでは、それらを詳しく説明します:

コンテキストメニューの項目

ウェブページで UI を右クリックまたは Ctrl + クリックしたときの通常のコンテキストメニューと、インスペクターの HTML ペインで DOM 要素を右クリックまたは Ctrl + クリックしたときのコンテキストメニューの両方に、項目が追加されます:

context menu in the browser viewport, with a highlighted option: Inspect Accessibility Properties

context menu in the DOM inspector, with a highlighted option: Show Accessibility Properties

コンテキストメニューの [アクセシビリティプロパティを調査]/[アクセシビリティプロパティを表示] を選択すると、対応するアクセシビリティツリーのアイテムやプロパティを表示するために、アクセシビリティ タブが直ちに開きます。

注記: 一部の DOM 要素はアクセシビリティプロパティがありません。このような場合は [アクセシビリティプロパティを調査]/[アクセシビリティプロパティを表示] のメニュー項目がグレーアウトします。

UI アイテムのハイライト表示

アクセシビリティタブでアクセシビリティアイテムにマウスポインターを載せると、可能であれば関連する UI アイテムで半透明のハイライト表示を行います。これは、アクセシビリティツリーのアイテムが実際のページでどの UI アイテムに関連しているかを判断するのに役立ちます。

アクセシビリティピッカー

インスペクターの HTML ペインピッカー と同様に、アクセシビリティタブのピッカーボタンを押すと現在のページで UI アイテムを選択できます。そして、アクセシビリティツリーで対応するオブジェクトをハイライト表示します。

アクセシビリティタブのピッカーは、以下のようにインスペクターの HTML ペインピッカーとは外見が若干異なります:

highlighted dom inspector picker button, with a tooltip saying Pick an element from the page

highlighted accessibility inspector button, with a tooltip saying Pick accessible object from the page

"オブジェクトを選択" するとアクセシビリティツリーでアクセス可能なオブジェクトをハイライト表示して、ピッカーが非アクティブ化します。ただし Shift キーを押しながら "オブジェクトを選択" すると、ツリーでアクセス可能なオブジェクトを "プレビュー" できます (右ペインにオブジェクトのプロパティを表示します) が、Shift キーを離すまではいくつでも選択し続ける (ピッカーがキャンセルされません) ことができます。

ピッカーがアクティブであるとき、ピッカーボタンを再度押すか Esc キーを押すと、ピッカーを非アクティブ化できます。

典型的な使用方法

アクセシビリティインスペクターは、アクセシビリティの問題を一目で見抜くためにとても役に立ちます。第一に、適切な同等文字列がないアイテム (例えば alt 文字列がない画像や、name プロパティが null で適切なラベルがないフォーム要素) を調査できます。

A form input highlighted in the UI, with information about it shown in the accessibility inspector to reveal that it has no label — it has a name property of null

また、セマンティクスの検証でも役に立ちます。[アクセシビリティオブジェクトを調査] コンテキストメニュー項目を使用して、アイテムに正しい役割 (例えばボタンが実際にボタンの役割、リンクが実際にリンクの役割を持つか) を設定しているかをすばやく確認できます。

A UI element that looks like a button, with information about it shown in the accessibility inspector to reveal that it isn't a button, it is a section element. It has a name property of null

関連情報

ドキュメントのタグと貢献者

このページの貢献者: yyss
最終更新者: yyss,