その他についてはこちらの記事をご参照ください。
「Microsoft Edge Dev Blog の翻訳記事を Microsoft Edge Japan ブログで公開します。」
昨年の Windows 10 Anniversary Updateでは、Webアクセシビリティのための新しいアーキテクチャを導入し、Microsoft Edgeでよりアクセシブルな Web を実現しました。この劇的な改善により、EdgeHTML 15 と Windows 10 Creators Updateでは、より多くの経験を積むことができました。
この記事では、Windows 10 Creators Updateで EdgeHTML15 で導入されたWebプラットフォームのアクセシビリティの改善点について詳しく説明します。これらの改善は、開発者のエコシステム、支援技術コミュニティ、および標準化機関との継続的なパートナーシップによって実現され、よりアクセシビリティの高いユーザーエクスペリエンスを実現するために最もインパクトのある変更を特定して実装することができました。
Windows 10 Creators Updateでは、UIA Text Patternの高度なサポートと、Windows 10 Anniversary Updateで導入されたアクセス可能なWeb Platformコアの上に構築されたWebアクセシビリティパターンのサポートが強化されています。
サイトのテキストコンテンツを操作するための改善されたサポート
支援技術ベンダからのフィードバックに基づいて、Microsoft Edge の UI Automation TextPattern サポートに大幅な改善を実装しました。UI Automation TextPattern は、スクリーンリーダーやその他の支援技術がアプリケーションのテキストコンテンツにアクセスできるようにするために設計された特別な目的の API です。
TextPattern APIsの主な構成要素は次のとおりです :
- 開始点と終了点を含むテキストコンテンツビューのスパンからなるテキスト範囲と、移動操作
- テキスト単位: 文字、単語、段落など
- Getchildren メソッドと GetEnclosingElement のようにそれらを取得する方法と、テキスト範囲内に埋め込まれたオブジェクト
テキストやオブジェクトの表示については、特定のテキスト単位でナビゲートする際に注意すべき重要な事柄がいくつかあります。
文字単位
文字には、ページ上のテキスト、およびブロック区切り記号が含まれます。後者は <br> タグなどの要素でも、1 つのブロックの終点と別のブロックの終点で構成することもできます。
この例では、 “a”、 “</ div> <div>”、 “b” は文字単位です。 文字単位の移動では、単位とオブジェクトを示すために、(CompareEndpointsByRangeで示されるように)区切り記号を導入しました。
EdgeHTML 15 では、オブジェクトの境界間の人工的セパレータを削除しました :
EdgeHTML 14 では、これは “b”、””、”c” として読み取られます-空の文字に注意してください。EdgeHTML 15 以降では、これは次の文字として読み取られます: “b”、”c”
GetEnclosingElement や GetChildren などのオブジェクトTextPattern API の場合、複数の要素にまたがる文字単位(たとえば、上記の </ div> <div> など)は、文字単位の開始を含む要素に完全に含まれているかのように扱われるようになりました 。
単語単位
単語単位は個々の文字で構成され、常に末尾の単語区切り記号が含まれます。これらの文字は、オブジェクト取得 API の動作において一貫しています。オブジェクトの最後の単位への変更を含みます。
EdgeHTML 14 では、これは単語単位 “”、”link”、”n” で表され、ユニットの対応する外側の要素は “<li>“, “<a>“, “<li>“。EdgeHTML 15 では、単語単位 “link n” の囲み要素は <li> 要素になります。 文字単位と一致して、単語はもはやオブジェクト境界によって壊されません。
フォーマット単位
フォーマット単位は、UIA フォーマット属性の同じセットを持つコンテンツの連続したブロックです。オブジェクトの境界によって、フォーマット単位が壊れることもあります。フォーマット単位には、画像のようなアトミックな子のみが含まれ、オブジェクトの境界にまたがっていません。
この例では、”<img>”、”<img>” および ”here” はフォーマット単位です。既存のクライアントとの互換性を維持するために、オブジェクトの端(たとえば、隣接するリンクや表のセル)間に空のフォーマット単位を引き続き導入します。
既存のクライアントとの互換性を維持するために、オブジェクトの端(たとえば、隣接するリンクや表のセル)間に空のフォーマット単位を引き続き導入します。
ライン単位
ライン ユニットは、ブラウザー エンジンによって画面のレイアウトは、Visual 行を表します。行単位が文字単位で開始または終了するとは限りませんが、常に少なくとも 1 つの文字単位が含まれていることに注意することが重要です。行単位の GetChildren は、その行に含まれるインラインオブジェクト(リンクなど)を常に返します。
この例では、 “link”、 ” “、 “link”、 “</ div> <div> text </ div>”です。 行単位になります。
段落単位
段落単位には、ブロック区切り記号で分割された単語のグループが含まれます。
この例では “</div><p>” は、単一のブロックの区切り記号に結合されます。
段落は一連の単語で構成され、GetEnclosingElement や GetChildren などのオブジェクトAPIとの一貫した動作をします。
ページ単位、ドキュメント単位
EdgeHTML ページ単位はドキュメント単位と同じで、ドキュメントコンテンツ範囲全体をカバーします。
一般的なWebパターンのサポートの改善
EdgeHTML 15 は、アクセシビリティのための一般的な Web パターンの数のサポートを向上させます。これらのいくつかを以下に説明します。
参照された非表示要素の修正された名前と説明の計算
非常に一般的なアクセシビリティパターンでは、著者は aria-labelledby、aria-describedby のリファレンスを使用して、名前と説明の計算に使用される要素をポイントします。Microsoft Edge は、hidden(visibility:hidden、display:none)要素の参照を正しくサポートするようになりました。
この例では、最初の要素は、アクセス可能な名前を「非表示、しかしアクセス可能な名前」に計算します。
HTML lang 属性のサポートを導入
EdgeHTML 15は、UIA Culture attribute にマップされた HTML の “lang” 属性を完全にサポートするようになりました。これにより、支援クライアントは UI オートメーションを使用して複数言語のドキュメントを正しく利用できます。
空の代替テキストを持つイメージがプレゼンテーションロールにマップされるようになりました
EdgeHTML 15 では、W3C HTML アクセシビリティ API マッピングごとに、空の HTML “alt” 属性を持つ画像がプレゼンテーションロールに正しくマップされるようになりました。これは一般的なWebパターンであり、支援技術のユーザーは、画面リーダーで特定のナビゲーションモードと探索モードを使用すると、純粋にプレゼンテーションイメージの停止頻度が低くなることに気づくはずです。
よりアクセスしやすいWebプラットフォームへの旅
最後に、アクセシビリティコミュニティのメンバーによって報告された多数の問題を修正しました。
- ナレータでコントロールを二重に読み取る問題が修正されました。この修正の結果、明示的なARIAロールと組み込みコントロールの名前と同じ値にアクセス可能な記述を計算することはもうありません。
- 改善されたスクロールパターンのサポートにより、すべてのWebページでナレータのスクロールエクスペリエンスが向上しました。
- モバイルでのWebプラットフォームの文字サイズのサポートを無効にし、すべてのWebページでピンチ/ズームのサポートを有効にしました。
- UIオートメーションによるUIA TextPattern操作の信頼性向上、ツリーのトラバーサル、フォーカス、選択操作の改善
- 既存のUIオートメーションAPIを使用するすべての操作のパフォーマンスが大幅に向上しました。
Web ページとのやりとりがより迅速かつ反応的であることが期待できます。私たちは、能力に関係なく、誰にでも働く Web について情熱を持っており、Windows 10 Creators UpdateとEdgeHTML 15では、支援技術の向上した経験を共有することに興奮しています。@MSEdgeDevのこれらの変更に関するご意見は、Twitterやオープンバグポータルでお待ちしておりますので、間もなくさらなる改善をお楽しみください!
– Bogdan Brinza, Program Management Lead, Microsoft Edge
– Rossen Atanassov, Software Development Lead, Microsoft Edge
– Peter Salas, Software Development Engineer, Microsoft Edge
Updated May 25, 2017 1:45 pm