HTML の title 属性を正しく使用するためのヒント

HTML の title 属性を正しく使用するためのヒント
コンテンツを携帯電話、タブレット、支援技術のユーザーから非表示にし、キーボードのユーザーにのみ表示する場合は、title 属性を使用します。
詳細

HTML の title 属性自体に問題があります。問題は、14 年以上も私たちと共にあるにもかかわらず、いくつかの重要な点で不十分であるということです。タッチデバイスの登場により、このプロパティの有用性はさらに低下しました。ブラウザのサポート、スクリーン リーダーのサポート、開発者の注目が不足しているため、タイトル属性のアクセシビリティは少し残念なものになっています。
次の場合には、サポートされていないため、 title 属性は不要になります。

モバイル ブラウザーで Web コンテンツ情報にアクセスするユーザー向け。通常、タイトル属性の内容はデスクトップ ブラウザーでツールチップとして表示されます。私の知る限り、ツールチップの表示をサポートしているモバイル ブラウザーはなく、タイトル属性の内容に視覚的にアクセスする方法は他にありません。
マウスを使用できない人のための情報を提供します。通常、タイトル属性の内容はデスクトップ ブラウザーでツールチップとして表示されます。プロンプト情報の動作は 10 年以上前から存在していますが、キーボードを使用して title 属性を表示する方法を実装したブラウザーはありません。
さまざまな支援技術を使用するユーザーに情報を提供するために、ほとんどの HTML 要素で使用されます。私の知る限り、スクリーン リーダーはタイトル属性情報へのアクセスをサポートしていません。

タイトル属性は次のようにユーザーフレンドリーではありません

携帯電話ユーザー キーボードのみを使用する人 画面拡大鏡を使用する人 スクリーンリーダーを使用する人 微細運動能力に障害のある人 認知障害のある人

便利なタイトル属性の例:

フレームまたは iframe 要素にラベルを付けるには:
<frame title="ナビゲーション">
特別な状況でのみ表示され、プログラミングが必要なラベルを提供します。表示されるテキスト ラベルを直接使用するのは冗長です。
<input type="text" title="検索"> <input type="submit" value="検索">
データ グリッド内のラベル コントロール。

title 属性が役に立たない、または用途が限られている例:

テキストとして利用できないリンクまたは周囲のコンテンツに追加情報を追加するには:
<a href="newsletter.PDF" title="PDF ファイル、サイズ 1 mb">ニュースレター</a>
代わりに、そのような情報はリンク テキストの一部として、またはリンクの横に含める必要があります。
リンク テキストと同じ情報を提供します。
<a href="newsletter.PDF" title="newsletter">ニュースレター</a>
リンクの内容をタイトル属性としてコピーしないことをお勧めします。これは実際には何もしないことと同じです。
画像に使用するタイトル:
<img src="castle1858.jpeg" title="キャンバスに油絵の具で描いた作品。マリア・タウル、1858 年。"
alt="城には現在 2 つの塔と 2 つの壁があります。">
おそらく最も重要な情報であり、デフォルトですべてのユーザーがアクセスできる必要があります。もしそうなら、このコンテンツは画像のすぐ隣に配置する必要があります。
フォーム ラベルを置き換え、表示されているテキスト ラベルを削除するために使用します。
<input type="text" title="名前">
タイトル属性はアクセシビリティ API で属性名としてリストされているため、スクリーン リーダー ユーザーはフォーム要素のラベルにアクセスできます (テキスト ラベルにラベル要素を使用する場合は、これはサポートされません)。他の多くのユーザーはそうしません。可能な場合は、目に見えるテキスト ラベルを含めることをお勧めします。
フォーム要素の表示ラベル コンテンツと同じ情報を提供します。
<label for="n1">名前</label> <input type="text" title="名前" id="n1">
目に見えるラベルテキストを繰り返すと、ユーザーの認知ノイズのレベルが上がるだけです。やめなさい。目に見えるラベル テキストを繰り返すことは、迷惑な認知ノイズを追加する以外に何の役にも立たないように思われるので、使用を中止してください。
フォーム要素に追加のディレクティブを提供します:
<label for="n1">名前</label> <input type="text" title="大文字を使用してください。"id="n1">
フォーム要素を正しく使用するために指示が不可欠な場合は、すべてのユーザーが読めるように要素の周囲にテキストを配置します。
略語の拡張として:
<abbr title="ワールド ワイド ウェブ コンソーシアム">W3C</abbr>
abbr 要素の title 属性はスクリーン リーダー ソフトウェアでサポートされていますが、他のユーザー グループがアクセスできないため、使用には依然として問題があります。略語の完全な名前は、文書内で初めて登場するときにテキスト形式で提供するか、用語集で提供することをお勧めします。これは、title 属性が使用できないという意味ではありませんが、制限があり、完全なタイトルをテキスト形式で提供する必要があります。

HTML 5.1 には、title 属性の使用に関する一般的な推奨事項が含まれています。

現在、多くのユーザー エージェントが仕様で要求されているようにこの属性を表示できないため、 title 属性に依存することは推奨されていません (たとえば、ツールチップを表示するにはマウス ポインティング デバイスが必要で、キーボードのみのユーザーやタッチスクリーンのユーザーは除きます)。

img要素のalt属性の代わりにtitle属性を使用したり、画像のタイトルとして使用したりすることは禁止されています。

多くのユーザー エージェントでこの属性のアクセシビリティ サポートが弱いため、現在、title 属性に依存することは禁止されています...

<<:  Vueはアコーディオン効果を実装する

>>:  Docker+Selenium Grid に基づく技術アプリケーションをテストするためのサンプル コード

推薦する

CSS により、子コンテナが親要素を超えます (子コンテナは親コンテナ内で浮動します)

序文場合によっては、次の図のような浮動効果の要件が必要になります。 成し遂げる標準的な通常の状況では...

MYSQL トランザクション チュートリアル Yii2.0 マーチャント引き出し機能

序文私はプログラマーとしてスタートした PHP プログラマーです。これまで、トレーニング コースで勉...

Vueは左上と右上のスライドナビゲーションを実装します

ナビゲーションなどは日々の開発でよく使うので、記録として記事を書きます。ナビゲーションは終了/開始位...

Webデザインチュートリアル(3):デザインの手順と考え方

<br />前のチュートリアル:Webデザインチュートリアル(2):模倣と盗作について。...

CSS3 と JavaScript を使用して Web カラー ピッカーのサンプル コードを開発する

この例の Web カラー ピッカー機能は、ページ効果を実現するために CSS3 を使用します。つまり...

ページ要素の絶対位置と相対位置に関するある程度の理解

今日から、定期的にちょっとした豆知識を整理していきます。簡単なものもあるかもしれませんが、どれも役に...

MySQLのレプリケーションとチューニングの原則と方法を分析する

1. はじめにMySQL にはレプリケーション ソリューションが付属しており、次のような利点がありま...

docker run によって起動されたコンテナがハングしてデータが失われた場合の対処方法

シナリオの説明あるシステムでは、機能サービスはdocker stack deploy xxxで起動し...

HTML マークアップ言語 - フォーム

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Mysqlの自動増分IDについて知らないことがあるかもしれません

導入: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (AUT...

CentOS 8 Zabbix 4.4 インストール ガイド

Zabbix サーバー環境プラットフォームZABBIX バージョン 4.4セントOS8 MySQL ...

HTML の blockquote タグの使用と美化

ブロック引用の定義と使用法<blockquote> タグは引用ブロックを定義します。 &...

CSS3 で translate と transition を使用する方法

translate と transition は非常に強力で、習得するのは不可能だといつも感じていま...

MySQL全文インデックスの原理と欠点

MySQL フルテキスト インデックスは、特定のテーブルの特定の列に表示されるすべての単語のリストを...

WeChatアプレットはユーザーログインモジュールサーバーの構築を実装します

サーバーの構築には node.js を選択しました。まだインストールしていない方は、私の他の nod...