跳至主要內容
Niquelao 無障礙網頁與西班牙文前端開發:WCAG 標準、無障礙小工具與 Firefox 擴充功能,以真實程式碼解說。

本站部分連結為聯盟連結:若您透過這些連結購買,我們可能賺取佣金,而您無需支付任何額外費用。這絕不影響我們的推薦內容。詳情請參閱我們的聯盟揭露聲明。 聯盟行銷聲明.

acc_calendar:JavaScript 無障礙日曆(非必要但實用)

acc_calendar: 以 JavaScript 實作的可存取日曆(非必要但實用) | Niquelao Niquelao 你說這成果如何? 跳至內容 首頁 對比檢查器 標題地圖 Easyvalidator 關於我… acc_calendar: 以 JavaScript 實作的可存取日曆(非必要但實用) 可存取性與 JavaScript? acc_calendar: 以 JavaScript 實作的可存取日曆(非必要但實用) 更新於 2008 年 6 月 1 日,作者 Rumoroso 在需要輸入日期的表單欄位中,為了提升使用者體驗,同時加強對資料格式的控制,可以透過 JavaScript 加入日曆。我知道,這是個禁忌詞,不過只要謹慎處理並加以控制,就不一定會對標準與可存取性造成負面影響。 目標 一開始我設定了兩個主要目標,與其說是目標,不如說是建構時的作業準則: 要可存取且不干擾。顯然,在不支援 JavaScript 的情況下不會提供展開日曆的選項,但如果有支援……為什麼不讓產生的內容可存取且可用呢? 要易於實作與使用。我尋找了一種方式,讓希望在其網頁中實作的程式設計師不需要加入額外的程式碼。就像在 CSS 中使用各種類型的選擇器(元素、id、類別……)來將樣式關聯到文件的不同部分,為什麼不用同樣的方式來關聯行為呢? 此外,次要目標包括:最佳化、通用化、國際化……(現實一點,我不得不刪掉把妹和賺錢這兩個目標。) 將其納入我們的文件中 首先指出,可以直接下載完整範例來取得此腳本。將日曆納入文件就像在 head 中加入對應的 script 元素一樣簡單: 日曆會為任何帶有「fecha」類別的文字欄位載入(如果文件語言是西班牙文)。日期格式在腳本的第一行設定。因此,舉例來說,如果希望日期遵循日/月/年的順序,日在為單一數字時前面不加 0,月在需要時加上 0,而年份格式為 4 位數: var formato = ‘d/mm/yyyy’; 如前所述,若要在文字欄位旁顯示日曆,當文件宣告的語言為西班牙文時,該欄位必須帶有「fecha」類別(若為英文則為「date」,依此類推)。這些類別名稱可以直接在腳本中修改、為其他語言新增等。此外,所有可能的參數都以類別形式加入。完整清單如下: 載入日曆(必要):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 月) 有時我們可能希望日期輸入在三個文字欄位中,每個組成資料各一個。已加入這麼做的可能性。為此,我們仍將透過指派給 input 的類別來控制一切。為了讓它們構成一個群組,這三個文字欄位必須加入一個能識別它們為同一群的代碼。這聽起來有點奇怪,但其實不然。實際上,要做的是在我們用作類別的「fecha」一詞後,為這三個欄位加上一個字母或數字。因此,舉例來說,我們可以為這三個欄位套用「fechaA」類別,隨即除了關聯開啟日曆的連結外,它們也會開始像一個群組般運作。稍後會包含兩個範例清楚展示這一點。 每個欄位應根據所關聯的資料帶有一個類別: 日欄位使用「day」類別 月欄位使用「month」類別 年欄位使用「year」類別 它們的排列順序完全自由,將用於設定日曆的類別(年數、之前、之後等)放在所使用的第一個欄位中即可。在以下範例中可以了解做法: 第二個範例 未來 10 年的日期,格式為日、月、年:日 / 月 / 年 重要考量是要始終告知使用者每個欄位對應什麼。在範例中會在前面的文字中告知,此外,input 的標籤也包含這些資訊。 過去 15 年的日期,格式為年、月、日:年 / 月 / 日 重要考量是要始終告知使用者每個欄位對應什麼。在範例中會在前面的文字中告知,此外,input 的標籤也包含這些資訊。 更新(2007 年 4 月) 已修改腳本以減少從中套用的樣式。現在,產生的連結以內容方式包含圖片(之前是從樣式表載入)。連結會緊接在 input 之後產生(若 input 包含在 label 中則在 label 之外),並具有以下標記: Calendario 若是用於將日期載入三個文字欄位的連結,連結的類別會變成「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