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 に基づく技術アプリケーションをテストするためのサンプル コード

推薦する

SQL 結合クエリの内部結合、外部結合、クロス結合の違いの詳細な説明

データベースを使用するアプリケーションを開発する場合、必然的にユニオンクエリを使用する必要があります...

HTMLにビデオを挿入してすべてのブラウザと互換性を持たせる方法

HTML にビデオを挿入するために最もよく使用される方法は 2 つあります。1 つは古い <o...

Linux ブートシステム方式の分析

この記事では、Linux システムを起動する方法について説明します。ご参考までに、詳細は以下の通りで...

CSS3は光る境界線効果を実現します

操作効果: html <!-- この要素は表示されません。DOM は JavaScript に...

16 の XHTML1.0 と HTML の互換性ガイドラインの概要

1.ページを XML タイプとして宣言しないでください。ページでは UTF-8 または UTF-16...

CentOS の MySQL に MariaDB をインストールするときに発生する方法と問題

以前にインストールしたmariadbを削除する1. rpm -qa | grep mariadb を...

ルートパスワードを変更するための MySQL 設定、MySQL サーバー接続、MySQL 共通コマンド図

1. ルートパスワードの設定と変更mysql が起動しているかどうかを確認します。起動していない場合...

JavaScript デザインパターンの学習 アダプタパターン

目次概要コードの実装要約する概要アダプタ パターンは、デザイン パターンの動作パターンのパターンです...

MYSQLの文字セット設定方法(端末の文字セット)の詳しい説明

序文ターミナルを使用してデータベースまたはテーブルを作成するたびに、文字セットが latin1 であ...

MySQL の 3 つの浮動小数点型 (float、double、decimal) の違いと概要について簡単に説明します。

各浮動小数点型のストレージ サイズと範囲は、次の表に示されています。タイプサイズ範囲(符号付き)範囲...

Linuxは、単一のIPをバインドするためにデュアルネットワークカードを実装するためにボンドを使用します。サンプルコード

ネットワークの高可用性を実現するには、複数のネットワーク カードを仮想ネットワーク カードにバインド...

Windows での MySQL 8.0.15 の詳細なインストールと使用のチュートリアル

この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...

Vue は書籍管理ケースを実装します

この記事では、書籍管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...

Django がローカル MySQL データベースに接続する手順 (pycharm)

ステップ1:setting.pyでデータベースを変更する # データベースを構成する DATABAS...

MySQLクエリ速度を最適化する方法

前の章では、高性能な MySQL に不可欠な、最適化されたデータ型の選択方法とインデックスの効率的な...