ネイティブとカスタム:実際の要素を使うタイミング
スタイルを付けたspanより本物のbuttonが常に優れている理由を学びます。
「ネイティブとカスタム:実際の要素を使うタイミング」はCoddyKit上の無料Web Accessibility Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはWeb Accessibility Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Web Accessibility Academyコースには全4レッスンが含まれています。
基本となる選択
どのコントロールでも、選択肢は1つです。ネイティブなHTML要素を使うか、カスタム要素を自分で構築するかです。ほとんどの場合、ネイティブが適しています。
本物のボタンはそのまま動く
ネイティブのbuttonは、フォーカス可能で、マウス、キーボード、タッチでクリックでき、正しく読み上げられます。タグを1つ書くだけで、残りはプラットフォームが処理します。
<button>Buy now</button>スタイルを付けたspanでは不十分
spanをボタンのようにスタイルしても、役割もフォーカスもキーボード対応もありません。目をごまかせるだけです。
<span class="button">Buy now</span>カスタム要素のコスト
カスタムコントロールを機能させるには、role、tabindex、さらに Enter と Space 用のキー操作ハンドラーを追加する必要があります。1つのタグに合わせるだけなのに、多くのコードが必要です。
<span role="button" tabindex="0">Buy now</span>そして何かを忘れてしまいます
注意深く作ったカスタムコントロールでも、フォーカスリング、無効状態、タッチ操作などの境界ケースを見落とします。ネイティブの要素なら、これらをすべて最初から処理してくれます。
ネイティブはボタンだけではありません
これはプラットフォーム全体に当てはまります。本物のselect、チェックボックス、details 要素なら、div の模倣では完全には再現できない動作とアクセシビリティが得られます。
<input type="checkbox"> Remember meフォームはネイティブを好みます
ネイティブのフォームコントロールはformと一緒に送信され、自身で検証を行い、label と自動的に連携します。これを手作業で再構築する価値は、ほとんどありません。
カスタムが正当化される場合
そのパターンに対応するネイティブ要素がない場合に限ってカスタムにします。たとえばタブインターフェースやツリーなどです。その場合は、実績のある作成パターンに慎重に従ってください。
ネイティブを自由にスタイル設定する
本物のボタンは質素に見えるのではないかと心配ですか。ネイティブ要素は CSS で大幅にスタイル設定できます。セマンティクスを保ったまま、見た目は好きなものに変えられます。
コードを減らし、堅牢性を高める
本物の要素を使えば、JavaScript が減り、バグも少なくなります。さらに、ブラウザーや支援技術の更新にも、追加の作業なしで対応できるコントロールになります。
基本ルール
これを基本方針にしてください。まずはネイティブ、カスタムは最後の手段です。Web プラットフォームは大きなアクセシビリティの恩恵を提供してくれるので、任せられる部分は任せましょう。
簡単な確認
ネイティブにするかカスタムにするかを判断しましょう。
まとめ
まずネイティブを選びましょう。本物のボタンや input なら、フォーカス、キー操作、セマンティクスが最初から備わっています。要素がない場合だけカスタムにし、ネイティブ要素は自由にスタイル設定してください。🎉
よくある質問
「ネイティブとカスタム:実際の要素を使うタイミング」レッスンは無料ですか?
はい。「ネイティブとカスタム:実際の要素を使うタイミング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Web Accessibility Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Web Accessibility Academyコースには全4レッスンが含まれています。
「ネイティブとカスタム:実際の要素を使うタイミング」で何を学びますか?
スタイルを付けたspanより本物のbuttonが常に優れている理由を学びます。 ブラウザで直接実行するハンズオンコードでWeb Accessibility Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Web Accessibility Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのWeb Accessibility Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「ネイティブとカスタム:実際の要素を使うタイミング」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このWeb Accessibility Academyレッスンでコードを書いて実行できますか?
はい。すべてのWeb Accessibility Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- タグには意味がある:divだらけの構造が失敗する理由
- テキスト要素:段落、リスト、強調
- アクセシビリティツリー:スクリーンリーダーが読み上げる内容
- ネイティブとカスタム:実際の要素を使うタイミング