acc_calendar: アクセシブルなJavaScriptカレンダー(不要だが便利)
acc_calendar: JavaScriptでアクセシブルなカレンダー(不要だが便利) | Niquelao Niquelao どう言ったらいいんだろう? コンテンツへスキップ ホーム Contrast Checker HeadingsMap Easyvalidator 私について… acc_calendar: JavaScriptでアクセシブルなカレンダー(不要だが便利) アクセシビリティとJavaScript? acc_calendar: JavaScriptでアクセシブルなカレンダー(不要だが便利) 2008年6月1日更新 、 Rumoroso著 日付を入力する必要があるフォームフィールドでは、ユーザーエクスペリエンスを向上させると同時にデータ形式の制御を強化するために、JavaScriptでカレンダーを含めることができます。分かっています、禁句ですよね 、しかし慎重に制御しながら行えば、標準やアクセシビリティに関して悪影響を及ぼす必要はありません。 目的 原則として、2つの主要な目的を設定しました。目的というよりも、構築する際の作業指針と言った方が正確です: アクセシブルで非侵襲的であること。明らかに、JavaScriptのサポートがない場合はカレンダーを展開するオプションは提供されませんが、サポートがあるなら… 生成されたコンテンツをアクセシブルで使用可能にしないのはなぜでしょうか? 実装と使用が簡単であること。ウェブページに実装したいプログラマーが追加のコードを導入する必要がないような方法を模索しました。CSSで様々な種類のセレクタ(要素、id、クラスなど)を使用してドキュメントの各部分にスタイルを関連付けるのと同じように、 同じものを動作の関連付けに使わないのはなぜでしょうか? さらに、副次的な目的として:最適化、汎用化、国際化…(現実的に、モテる目的とお金を稼ぐ目的は削除せざるを得ませんでした。) ドキュメントへの組み込み まず最初に、スクリプトは完全なサンプルをダウンロードする ことで直接入手できることをお伝えします。 カレンダーをドキュメントに組み込むのは、対応するscript要素をheadに含めるだけです: カレンダーは、「fecha」クラス(ドキュメントの言語がスペイン語の場合)を含む任意のテキストフィールドに対して読み込まれます。日付の形式はスクリプトの最初の行で設定します。したがって、例えば日付を日/月/年の順にし、日が1桁の場合は前に0を付けず、月には必要に応じて0を付け、年の形式を4桁にする場合: var formato = ‘d/mm/yyyy’; すでに述べたように、テキストフィールドの横にカレンダーを表示するには、ドキュメントで宣言された言語がスペイン語の場合(英語の場合は「date」など)、そのフィールドに「fecha」クラスを付ける必要があります。これらのクラス名はスクリプト内で直接変更したり、他の言語用に新しいものを追加したりできます。さらに、すべての可能なパラメータはクラスとして導入されます。完全なリストは以下の通りです: カレンダーを読み込む(必須):fecha 今日より前の日付:prev 今日より後の日付:post 年の範囲:rangX(Xは年数) 今日を含めない:todnact 利用可能な日付のフィルターを適用:disp AJAXでinputを動的に読み込んだ場合は? このスクリプトには、AJAXで非同期的に新しいテキストフィールドがいつでも導入された場合、その読み込み後にcargaLinks()関数を呼び出すだけで、inputにカレンダーを開くためのリンクが関連付けられるという特性があります。 最初の例 今年の将来の日付、d/mm/yyyy形式( class=“fecha post” ) 今年の将来の日付、d/mm/yyyy形式、今日を含めない( class=“fecha post todnact” ) 生年月日、d/mm/yyyy形式、100年前まで( class=“fecha prev rang100” ) 今後20年間の日付、d/mm/yyyy形式、今日を含めない( class=“fecha post rang20 todnact” ) 過去15年間の日付、d/mm/yyyy形式( class=“fecha prev rang15” ) 前後10年間の日付、d/mm/yyyy形式( class=“fecha rang10” ) 新機能(2007年4月) 日付を3つのテキストフィールドに分けて入力したい場合があります。それを可能にする機能を追加しました。これもinputに割り当てられたクラスを使用してすべてを制御し続けます。グループを構成するには、3つのテキストフィールドにそれを識別するコードを追加する必要があります。これは奇妙に思えるかもしれませんが、それほどでもありません。実際には、3つすべてでクラスとして使用する「fecha」という単語に、文字または数字を追加するだけです。したがって、例えば3つすべてに「fechaA」クラスを適用すると、すぐにカレンダーを開くためのリンクが関連付けられるだけでなく、グループとして動作するようになります。後ほど、それを明確に示す2つの例を掲載します。各フィールドには、関連付けられたデータに応じたクラスを付ける必要があります: 日のフィールドには「day」クラス 月のフィールドには「month」クラス 年のフィールドには「year」クラス 配置する順序は完全に自由で、カレンダーの設定用クラス(年数、前、後など)は使用する最初のフィールドに配置します。以下の例でその方法を確認できます: 2番目の例 今後10年間の日付、日、月、年形式: 日 / 月 / 年 重要な考慮事項として、各フィールドが何のためのものかを常にユーザーに知らせることです。例では前のテキストで知らせており、さらにinputのラベルにも含まれています。 過去15年間の日付、年、月、日形式: 年 / 月 / 日 重要な考慮事項として、各フィールドが何のためのものかを常にユーザーに知らせることです。例では前のテキストで知らせており、さらにinputのラベルにも含まれています。 更新(2007年4月) スクリプトから適用されるスタイルを減らすためにスクリプトを修正しました。現在、生成されるリンクは画像をコンテンツとして持っています(以前はスタイルシートから読み込まれていました)。リンクはinputの直後(label内に含まれている場合はその外)に生成され、以下のマークアップを持ちます:
3つのテキストフィールドに日付を読み込むためのリンクの場合、リンクのクラスは「enl_cal_group」になり、これは前に配置されます
P.S. A few readers have asked which superposición de accesibilidad (overlay) we actually reach for — it's accessiBe; if you want the current details.
¿Cumplir WCAG sin tocar el código?
Superposición de IA que promete cumplimiento WCAG en 48 horas