サイト構築のヒントとコツ
より良いSEOとアクセシビリティのために
スキャンしやすい見出しをつける
情報を素早くスキャンでき理解しやすくするためには、大きな文字や太い文字の見出しを使用することをお勧めします。これらの見出しは、効率的なナビゲーションを可能にします。すべてのユーザーに最適なナビゲーションを提供するために、見出し要素の順序と一貫した階層を維持しましょう。その際、複雑な見出しの表現や大きな見出しの多用は避けましょう。
読みやすさとレスポンシブレイアウトの確保
標準的なテキストでは、背景とのコントラスト比を最低4.5:1にします。大きなテキスト(18.5ピクセルのボールドまたは24ピクセルのレギュラー以上)は、コントラスト比を3:1以上にしましょう。アイコンなど、インタラクティブでテキスト以外のコンポーネントは、隣接する色とのコントラスト比を3:1以上にします。縦向き、横向き、ズームレベルなど、多様なユーザーの嗜好や要件に対応するレスポンシブレイアウトをデザインします。コンテンツは、情報を犠牲にすることなくシームレスに適応し、最大400%のズームレベルでも横スクロールなしで最適な表示ができるようにします。320ピクセルのブレイクポイントでデザインすることで互換性が確保されます。さらに、コンテンツのクリッピングを防ぐため、テキストのズームは200%までとします。
リッチメディアと代替コンテンツで理解度を高める
特に認知障害や学習障害のある人の理解度を高めるために、画像やグラフィック、動画をコンテンツに取り入れ、包括性を確保するために、リッチメディアの代替手段を提供し、視覚や音声情報を知覚できない人でもコンテンツにアクセスできることが理想的です。また、視覚メディアには、説明的なaltテキストを提供し、スクリーンリーダーとの互換性を確保することが重要です。ビデオメディアでは、カスタマイズ可能なクローズドキャプション(字幕)を使用し、ユーザーがコントラストの好みを調整できることが理想です。
意味のあるシンプルなテキスト
インターフェイスをデザインするときは、明確でわかりやすい言葉を使い、集中できるユーザー体験を作りましょう。情報を効果的に伝えるために、簡潔で一貫性のある文章を心がけましょう。過度に複雑な表現や専門的な表現は避け、英語を母国語としないユーザーにも対応できるようにしましょう。(英語コンテンツの場合)
意味のある色を効果的に使う
赤は危険、黄色は注意、緑は肯定的なフィードバックといった機能的な色は、瞬時に情報を提供します。これらの色は装飾目的ではなく、重要なメッセージを伝えるために使いましょう。セマンティックカラーを一貫して使用し、他のインジケーターと適切に組み合わせることで、文脈を強化し認知的負荷を軽減します。
SEOのためにフロントエンドコンポーネントを最適化する
検索エンジン最適化(SEO)とクローラビリティのためにフロントエンドのコンポーネントを高度に最適化するために、コンテンツのレンダリングをJavaScriptのインタラクションだけに頼らないようにし、CSSを優先しましょう。また、アクセシビリティとクローラビリティを維持するため、JavaScriptをオフにした場合のコンポーネントの機能を考慮しましょう。
コンテンツのクローラビリティへの配慮
GoogleはJavaScriptをクロールすることができますが、クライアント側でレンダリングされたコンテンツにアクセスできなかったり、希望通りに解釈されなかったりする場合があります。これらの概念は、BingやBingbotのような他の検索エンジンにも当てはまることをご承知おきください。
ユーザーイベント
Googlebotはクリック、ホバー、スクロールなどのユーザーアクションを追跡しません。そのため、コンテンツや要素がユーザーイベントに依存している場合、XHR経由で取得されたコンテンツを含め、検索エンジンのクローラーからは見えない可能性があります。
ビューポート
Googlebotのスクロール能力の限界に対処するため、縦長のビューポートが採用されています。
正確な高さはGoogleによって公式に開示されていませんが、実験では12,140pxの高さが確認されています。さらに、GooglebotはIntersection Observer APIをサポートするようになり、画像やコンテンツアセットのアクティブ化に推奨されています。
インデックス作成時間
Googlebotは主にSSR HTMLにクロールとインデックスを依存しています。しかし、GooglebotはJSフレームワークや潜在的なJSコンテンツの存在を検出すると、ヘッドレスブラウザを使用して再クロールするためにURLをキューに入れます。このキューは数日の遅延につながる可能性があり、新サービス、規制情報、ポリシー変更など、検索エンジンにおけるタイムセンシティブなコンテンツの発見可能性に悪影響を及ぼす可能性があります。
WAI-ARIA
W3Cによって維持されているWAI-ARIAは、Wandaのコンポーネントで見られる一般的なUIパターンのセマンティック仕様を提供します。その目的は、ネイティブのブラウザ要素を使用して構築されていないコントロールに意味を割り当てることです。例えば、ボタンを作成する場合、スクリーンリーダーや音声認識ツールにボタンの目的を伝えるために特定の属性を追加する必要があります。このような場合は、ボタン要素を使用することをお勧めします。セマンティクスに加えて、WAI-ARIAは、異なるコンポーネントタイプに期待される動作に関するガイダンスを提供します。ボタン要素は特定のインタラクションに自然に反応しますが、開発者はJavaScriptを使ってそれらのインタラクションを再実装する必要があります。WAI-ARIAのオーサリングプラクティスは、Wandaのコンポーネント内のさまざまなコントロールの動作を実装するためのさらなるガイダンスを提供します。
アクセシブルなラベル
ネイティブのHTMLラベル要素は、特に組み込みのフォームコントロールの場合、対応する入力要素に意味と文脈を提供するように設計されています。しかし、Wandaによって提供されるような非フォームコントロール要素やカスタムコントロールについては、WAI-ARIAはそのようなコントロールにアクセシブルな名前や説明を提供する方法についての仕様を提供しています。可能な限り、Wandaのコンポーネントはコントロールのラベル付けプロセスを簡素化する抽象化を含みます。ラベルプリミティブは、これらのコントロールの多くと効果的に動作するように設計されています。最終的には、ユーザーがアプリケーションをナビゲートするときに必要なコンテキストを確実に持てるように、適切なラベルを提供してください。
キーボードナビゲーション
タブやダイアログのような複雑なコンポーネントは、キーボード操作やマウスに依存しない他の入力モダリティをサポートする必要があります。Wandaのコンポーネントは、WAI-ARIAオーサリングプラクティスで概説されている基本的なキーボードサポートガイドラインに従っています。
フォーカス管理
適切なキーボードナビゲーションと効果的なラベリングは、フォーカスの管理と密接に関係しています。ユーザーが要素を操作して変更が生じた場合、それに応じてフォーカスを移動させることは有益です。これにより、次のタブストップがアプリケーションの新しいコンテキストと論理的に一致するようになります。さらに、スクリーンリーダーのユーザーにとって、フォーカスを移動することは、適切なラベリングに依存して、更新されたコンテキストを伝えるアナウンスをトリガーすることがよくあります。多くのWandaコンポーネントでは、フォーカスは与えられたコンポーネント内の典型的なユーザーインタラクションに基づいて移動されます。例えば、モーダルでは、それが開かれたとき、フォーカスはプロンプトへの応答を見越してキャンセルボタン要素にプログラム的に移動されます。
アクセシビリティについての詳細は公式サイトをご覧ください:
https://www.w3.org/WAI/standards-guidelines/wcag/