Windows 用の包括的なソフトウェアの設計

Windows 用 Windows アプリを使用したインクルーシブ デザインの進化について説明します。 アクセシビリティを考慮して、包括的なソフトウェアを設計、構築します。

Microsoft では、設計原則とその実践方法を常に進化させています。 それらは、Microsoft が提供しているエクスペリンス (外観、操作性、機能および動作) を伝えるものです。 Microsoft では、より高い視点を持つようになりました。

この新しい設計哲学は、包括性を備えた設計と呼ばれています。 その考えとは、最初からすべての人を念頭に置いてソフトウェアを設計することです。 これは、アクセシビリティを、少数のユーザーを満足させるために開発プロセスの最後に搭載するテクノロジと見なすこととは大きく異なっています。

「当社では、障碍を個人のニーズと、提供されるサービス、製品、環境との不一致と定義しています。 誰でも障碍を経験する可能性があります。 それらを排除しようとしてしまうのは、よく見られる人間の特性です。」 - 包括性のビデオより

包括性を備えた設計を行うことで、すべてのユーザーにとってより良い製品を創り出すことができます。 それは、さまざまな人間の多様性を考慮することと言えます。 現在、街角のほとんどの歩行者道路には、縁石がスロープになっている箇所があります。 それらは、明らかに車いすで移動する人を想定して作られたものです。 しかし、現在では、ベビー カーを押す人、自転車やスケートボードに乗っている人など、ほぼ全員がスロープを使用しています。 また、歩行者でさえ、そこにスロープがあり、スロープの方が楽であるという理由で、いつもスロープを使用するようになります。 テレビのリモコンは、身体的な制約がある人のための支援技術 (AT) と見なされることがあります。 しかし、現在では、リモコンのないテレビを購入することはほとんど不可能でしょう。 靴の紐を結べない子供でも、スリッポンやマジック テープの靴なら履くことができます。 着脱が容易な靴は、通常、家に入る前に靴を脱ぐ習慣がある地域で好まれます。 また、関節炎や手首の骨折などで手先をうまく使えない場合にも適しています。

包括性を備えた設計の原則

Microsoft では、包括性を備えた設計へと移行するときに、次の 4 つの原則を指針としています。

ユニバーサルに考える: ユーザーに共通しているもの (人間の動機、つながり、能力) に焦点を当てます。 これにより、商品が与える社会への幅広い影響について考えるようになります。 その結果、さまざまな方法を備えた、すべてのユーザーが参加できるエクスペリエンスを実現できます。

パーソナルにする: 次に、感情面の結び付きを生み出すという課題に取り組みます。 人間と人間のやり取りを見ることで、人間とテクノロジのやり取りを良くするためのヒントが得られます。 ユーザーに固有の状況がすべてのユーザーにとってより良い設計を生み出すことがあります。 その結果、特定のユーザーのために作られたかのようなエクスペリエンスを実現できます。

シンプルな状態を保つ: 最終的なよりどころとなるシンプルさから始めます。 余分なものをなくすことで、ユーザーは次に何をする必要があるかがわかるようになります。 ユーザーは、きれいで明るく開けた場所へと進むように促されます。 それが、時代を超越した本物のエクスペリエンスになります。

喜びを生み出す: 楽しい体験は、驚きや新しい発見を引き起こします。 それは、魔法のように感じることがあります。 まさに必要とされていたディテールであることもあります。 これらの瞬間が心地良いテンポの変化のように感じられるように設計します。 その結果、勢いよく流れるエクスペリエンスを生み出します。

包括性を備えた設計のユーザー

支援技術 (AT) を利用するユーザーには、基本的に 2 つの種類があります。

  1. 障碍、加齢に関連した状況、または一時的な状況 (手足の骨折による運動障碍など) などのために支援技術を必要としているユーザー。
  2. コンピューティング環境をより快適で便利なものにするために、支援技術を好きで利用しているユーザー。

コンピューター ユーザーの大部分 (54%) は何らかの形の支援技術を知っており、コンピューター ユーザーの 44% は何らかの形の支援技術を使用しています。しかし、多くのユーザーは、役に立つかもしれない支援技術を使用していません (Forrester 2004 年)。

Microsoft の依頼を受けて Forrester Research が実施した 2003 - 2004 年の調査では、米国の 18 歳から 64 歳のコンピューター ユーザーの半数以上 (57%) が支援技術からメリットが得られる可能性があることが指摘されています。 それらのユーザーのほとんどは、自分に障碍があることを認識していませんが、コンピューターを使用するときに特定のタスクに関連して障碍があると回答しています。 Forrester (2003 年) では、これらの特定の障碍を抱えるユーザーの数について、4 人に 1 人が視覚的な障碍を経験したり、 手首や手に痛みを経験したりしており、 5 人に 1 人が聴覚障碍を経験していると述べています。

永続的な障碍に加えて、個々のユーザーが体験する障碍の重さや種類は年齢と共に変化します。 まったく障碍がないという人はいません。 私たちの能力は、常に変化しています。 マーガレット・ミードによれば、「私たちは、それぞれ違います。 それぞれ違うことで、全員が同じであることができます。」

Microsoft では、コンピューティング環境の向上と斬新なコンピューティング テクノロジの考案を目標として、コンピューター サイエンスとソフトウェア エンジニアリングに関する調査を実施しています。 アクセシビリティに対応した、視聴および操作が簡単なコンピューターを提供するために Microsoft が現在実施している研究開発プロジェクトをご覧ください。

実用的な設計手順

手っ取り早い説明が必要な場合は、このセクションが役に立ちます。 ここでは、包括性を備えた設計をアプリに実装するときに検討することができる実用的な設計手順について説明します。

対象ユーザーを書き出す

アプリを使用する可能性があるユーザーを定義します。 それらのユーザーの能力および特徴をすべて考慮します。 たとえば、年齢、性別、言語、認知能力、学習スタイル、運動制限に加えて、聴覚障碍や難聴、また視覚障碍があるかどうかなどです。 設計が個々のユーザーのニーズを満たしていることを確認します。

特定のニーズを持つユーザーと実際に話す

アプリを使用する可能性がある、さまざまな特徴を持つユーザーと会います。 アプリを設計するときに、それらのユーザーのニーズをすべて考慮していることを確認します。 たとえば、Microsoft は、聴覚に障碍があるユーザーが Xbox コンソールのトースト通知をオフにしていることに気付きました。 聴覚に障碍がある実際のユーザーにその点を尋ねたところ、トースト通知によって字幕のセクションが見えにくくなることがわかりました。 そこで、画面の少し上側にトーストが表示されるように修正しました。 これは、簡単な解決方法でしたが、最初にその行動が判明した利用統計情報だけでは、原因がはっきりわからなかった可能性があります。

開発フレームワークを賢明に選択する

設計段階において、どの開発フレームワーク (UWP、Win32、web など) を使用するかは、製品の開発にとって非常に重要です。 フレームワークを選択する余裕がある場合は、フレームワークにコントロールを作成するのにかかる労力について考えます。 付属している既定または組み込みのアクセシビリティ プロパティを確認します。 また、カスタマイズする必要があるコントロールを確認します。 基本的に、フレームワークを選択するときには、どのくらいのアクセシビリティ コントロールを "無料" で入手できるか (どのくらいのコントロールが組み込まれているか)、またコントロールのカスタマイズによって発生する追加の開発コストがどのくらい必要になるかを選択していることになります。

可能であれば、標準の Windows コントロールを使用します。 これらのコントロールは、支援技術とのインターフェイスを構築するために必要なテクノロジに既に対応しています。

コントロールの論理的な階層を設計する

フレームワークを用意したら、コントロールをマッピングするための論理的な階層を設計します。 アプリの論理的な階層には、コントロールのレイアウトやタブの順序などが含まれます。 スクリーン リーダーなどの支援技術 (AT) プログラムによって UI が読み上げられる場合、視覚的な表現だけでは十分ではありません。ユーザーにとって構造的にわかりやすい代替プログラムを用意する必要があります。 これを行うのに、論理的な階層を設計することが役立ちます。 論理的な階層を設計するとは、UI のレイアウトを調査し、ユーザーが理解できるように各要素を構築することです。 論理的な階層は、主に次の目的で使用されます。

  1. UI 要素の論理的な (読み上げる) 順序に関するコンテキストをプログラムに提供するため。
  2. UI のカスタム コントロールと標準コントロールの境界をはっきりと認識するため。
  3. 各 UI が相互にどのように作用しているか理解するため。

論理的な階層は、潜在的な操作性の問題に対処する優れた方法です。 比較的に単純な方法で UI を構築することができない場合、操作性に問題がある可能性があります。 単純なダイアログ ボックスで論理的に表現できる場合は、図表が何ページも続くことはありません。 論理的な階層が深くなりすぎたり広くなりすぎたりする場合は、UI を設計し直す必要があることがあります。 詳しくは、アクセシビリティ ソフトウェアのエンジニアリングに関する eBook をダウンロードしてください。

適切な視覚的な UI 設定を設計する

視覚的な UI を設計するときには、製品にハイ コントラスト設定があること、製品が既定のシステム フォントおよび平滑化オプションを使用していること、製品が DPI (1 インチあたりのドット数) 画面設定に合わせて正しくスケーリングされること、背景とのコントラスト比が 5:1 以上である既定のテキストが使用されていること、また色覚障碍のユーザーでも簡単に区別できる色の組み合わせであることを確認します。

ハイ コントラスト設定

Windows に組み込まれているアクセシビリティ機能の 1 つに、テキストや画像の色コントラストを大きくするハイ コントラスト モードがあります。 一部のユーザーは、色コントラストを大きくすることで、目の疲れを軽減し、読みやすくなります。 ハイ コントラスト モードで UI を確認したら、リンクなどのコントロールがシステム カラー (ハード コードされた色ではなく) によって一貫した方法で色分けされていることを確認し、ハイ コントラストを使用しないユーザーに表示される画面にすべてのコントロールが表示されることを確認することができます。

システム フォントの設定

読みやすさを維持し、テキストに予期しないゆがみを生じるのを最小限に抑えるために、製品が常に既定のシステム フォントに準拠し、アンチエイリアシングおよび平滑化オプションを使用していることを確認します。 製品にカスタム フォントを使用した場合、(スクリーン リーダーを使用したり、異なるフォント スタイルで UI を表示したりするなどして) ユーザーが UI の表示設定をカスタマイズしたときに、非常に読みにくくなったり、気が散らされたりすることがあります。

高 DPI 分解能

視覚に障碍があるユーザーにとって、UI を拡大できることは非常に重要です。 高 DPI (1 インチあたりのドット数) 分解能時に正しくスケーリングされないユーザー インターフェイスでは、重要なコンポーネントが他のコンポーネントに重なったり隠れたりして、アクセスできなくなることがあります。

色コントラスト比

改正された障碍を持つアメリカ人法 (ADA) の第 508 条およびその他の法律によって、テキストと背景の既定の色コントラストを 5:1 にすることが求められています。 大きなテキスト (フォント サイズが 18 ポイントであるテキスト、またはフォント サイズが 14 ポイントで太字であるテキスト) の場合、必要な既定のコントラストは 3:1 です。

色の組み合わせ

男性の約 7% (女性では 1% 未満) は、何らかの色覚異常を持っています。 色覚に障碍があるユーザーは、特定の色を区別することができません。このため、アプリケーションの特定の状態または意味を色だけで表さないことが重要です。 装飾用の画像 (アイコンや背景) についても、色覚に障碍があるユーザーが画像を認識しやすいように、色の組み合わせを選択する必要があります。 これらの色に関する推奨事項を最初から考慮に入れて設計するだけで、包括性を備えたアプリへと大きく前進することができます。

まとめ - 包括性を備えた設計を行うための 7 つの手順

まとめると、包括性を備えたソフトウェアにするには、次の 7 つの手順に従う必要があります。

  1. 包括性を備えた設計がソフトウェアにとって重要な側面であるかどうかを判断します。 包括性を備えた設計が重要な側面である場合は、それによって実際のユーザーがどのように生活や仕事をしたり、楽しんだりすることができるようになるかを認識および理解し、それらを設計に役立てます。
  2. 要件に対するソリューションを設計するときには、フレームワークによって提供されているコントロール (標準のコントロール) をできるだけ使用して、カスタム コントロールに関連した不必要な労力およびコストが発生しないようにします。
  3. 製品の論理的な階層を設計し、UI のどこに標準コントロール、カスタム コントロール、およびキーボード フォーカスがあるかを確認します。
  4. 便利なシステム設定 (キーボード ナビゲーション、ハイ コントラスト、高 DPI など) を製品に設計します。
  5. Microsoft アクセシビリティ開発者ハブおよびフレームワークのアクセシビリティ仕様を基準としながら、設計を実装します。
  6. 特別なニーズを持つユーザーに製品をテストしてもらい、それらのユーザーが製品に実装されている包括性を備えた設計のメリットを活用できることを確認します。
  7. 完成した製品を出荷し、後からプロジェクトに参加する可能性がある人のために実装内容を記録しておきます。