ASP.NET 控制項和網頁可及性
更新:2007 年 11 月
ASP.NET 可讓您建立符合可及性方針的 Web 網頁。如需詳細資訊,請參閱 ASP.NET 中的網頁可及性支援。
若要在 ASP.NET 中建立無障礙的 Web 應用程式,您必須了解 ASP.NET 伺服器控制項如何支援網頁可及性。在許多情況下,您必須設定控制項建立符合可及性方針的標記。在少數情況下,ASP.NET 伺服器控制項無法用於必須百分之百符合《Web 內容可及性方針》1.0 版 (WCAG) Priority 1 方針的應用程式。在上述情況下,您必須避免使用控制項。
ASP.NET 控制項網頁可及性方針
下表列出 ASP.NET 伺服器控制項,並提供控制項可及性支援的相關資訊。如果某控制項未在表格中列出,其輸出將符合可及性方針,而無需任何組態要求。
控制項 |
網頁可及性支援 |
---|---|
此控制項並未產生 label 項目以關聯標籤與控制項。 所有的動詞命令都會產生相同的連結文字。 會呈現連結的替代文字,但是此文字是無法自訂的。 此控制項需要用戶端指令碼才能運作。 此控制項不會呈現便捷鍵或定位點索引設定。 |
|
此控制項並未產生 label 項目以關聯標籤與控制項。 所有的動詞命令都會產生相同的連結文字。 會呈現連結的替代文字,但是此文字是無法自訂的。 此控制項需要用戶端指令碼才能運作。 此控制項不會呈現便捷鍵或定位點索引設定。 |
|
如果控制項的 DisplayMode 屬性設為 LinkButton,則控制項需要用戶端指令碼才能發揮功用。若要避免用戶端指令碼的需要,請建立範本,並對這些函式加入 Button 控制項。 當控制項的 BulletStyle 屬性設為 CustomImage 時,請確保圖形未傳送對無法檢視該圖形之使用者不可用的意義。 對連結設定 Target 屬性就會開啟新的視窗,不過可及性方針並不建議這種做法。 |
|
設定 OnClientClick 屬性會讓按鈕依賴用戶端指令碼。 |
|
控制項未在資料行中呈現 header,但呈現以 scope 做為標題的 th 項目。 控制項配置是使用 HTML 表格呈現的,部分方針不建議這樣做。如可及性方針中所建議的,設定控制項的 Caption 和 CaptionAlign 屬性以呈現表格的標題。 控制項會呈現 LinkButton 控制項以進行巡覽,這需要用戶端指令碼才能發揮功用。若要避免用戶端指令碼的需要,請建立範本,並對這些函式加入 Button 控制項。 |
|
此控制項並未產生 label 項目以關聯標籤與控制項。 所有的動詞命令都會產生相同的連結文字。 會呈現連結的替代文字,但是此文字是無法自訂的。 此控制項需要用戶端指令碼才能運作。 此控制項不會呈現便捷鍵或定位點索引設定。 |
|
此控制項需要用戶端指令碼才能運作。 如果您設定控制項使用影像,請將對應的文字屬性設為適當的替代文字。例如,如果您將 ChangePasswordButtonType 屬性設為 Image,請將 ChangePasswordButtonText 屬性設為替代文字。 |
|
將 AutoPostBack 屬性設定為 true,就會使控制項需要用戶端指令碼。 |
|
將 AutoPostBack 屬性設定為 true,就會使控制項需要用戶端指令碼。 |
|
如果您設定控制項使用影像,請將對應的文字屬性設為適當的替代文字。例如,如果您將 CancelButtonType 屬性設為 Image,請將 CancelButtonText 屬性設為替代文字。 控制項中的按鈕 (例如 [送出] 按鈕) 和在步驟間移動的連結都需要用戶端指令碼。 |
|
如果未設定 QueryStringField 屬性,而且您是使用 NumericPagerField 或 NextPreviousPagerField 物件,則 DataPager 控制項需要用戶端指令碼。如果頁面巡覽區欄位物件設定為使用影像,您就無法為影像明確指定替代文字。影像會使用文字屬性 (例如 NextPageText) 做為替代文字。或者,使用 TemplatePagerField 物件,您就可以確實定義頁面巡覽區顯示的內容。 |
|
如果您建立 ButtonField 資料行,並為按鈕指定影像,則無法為影像明確指定替代文字。影像會使用物件的 Text 屬性做為替代文字。 控制項配置是使用 HTML 表格呈現的,部分方針不建議這樣做,因為它不包含表格標頭資訊。 如果您啟用分頁並設定 NextPageImageUrl 和 PreviousPageImageUrl 屬性,則無法為用做分頁按鈕的影像明確設定替代文字。請改為使用 PagerTemplate 屬性,以便您可以定義頁面巡覽區確實顯示的項目。 根據預設,這個控制項會使用需要函式 (例如切換至編輯模式、分頁等) 之用戶端指令碼的 LinkButton 控制項。若要避免用戶端指令碼的需要,請建立範本,並對這些函式加入 Button 控制項。 將控制項的 AutoGenerateEditButton 屬性設為 true 時自動產生的文字方塊,沒有關聯的 label 項目。若要避免這種情況,請建立樣板欄位並加入您自己的 Label 和 TextBox 控制項,並手動關聯它們。如可及性方針中所建議的,設定控制項的 Caption 和 CaptionAlign 屬性以呈現資料表的標題。 |
|
控制項不支援建議的 ListItemGroup 以允許清單細分成區段。 將 AutoPostBack 屬性設定為 true,就會使控制項需要用戶端指令碼。 |
|
顯示圖示時,所有的動詞命令都會顯示相同的替代文字。 此控制項需要用戶端指令碼才能運作。 此控制項不會呈現便捷鍵或定位點索引設定。 此控制項並未產生 label 項目以關聯標籤與控制項。 會呈現連結的替代文字,但是此文字是無法自訂的。 |
|
控制項配置是使用 HTML 表格呈現的,部分方針不建議這樣做,因為它不包含表格標頭資訊。 根據預設,該控制項會使用需要函式 (例如切換至編輯模式、分頁等) 之用戶端指令碼的 LinkButton 控制項。若要避免用戶端指令碼的需要,請使用 PagerTemplate 屬性,並對這些函式加入 Button 控制項。 如可及性方針中所建議的,設定控制項的 Caption 和 CaptionAlign 屬性以呈現資料表的標題。 |
|
將 RowHeaderColumn 屬性設為資料欄位的名稱,並將 UseAccessibleHeader 屬性設為 true,讓控制項呈現符合可及性方針的表格標頭資訊。 如果您建立 ButtonField 物件,並為按鈕指定影像,則無法為影像明確指定替代文字。影像會使用物件的 Text 屬性做為替代文字。 如可及性方針中所建議的,設定控制項的 Caption 和 CaptionAlign 屬性以呈現資料表的標題。 根據預設,該控制項會使用需要函式 (例如切換至編輯模式、分頁等) 之用戶端指令碼的 LinkButton 控制項。若要避免用戶端指令碼的需要,請建立範本,並對這些函式加入 Button 控制項。 如果您啟用分頁並設定 NextPageImageUrl 和 PreviousPageImageUrl 屬性,則無法為用做分頁按鈕的影像明確設定替代文字。請改為使用 PagerTemplate 屬性,以便您可以定義頁面巡覽區確實顯示的項目。 用於實作編輯、選取、分頁和其他更新函式的預設控制項都需要用戶端指令碼。若要避免這種情況,請建立樣板資料行,並手動加入 Button 控制項。 將控制項的 AutoGenerateEditButton 屬性設為 true 時自動產生的文字方塊,沒有關聯的 label 項目。若要避免這種情況,請建立樣板資料行並加入您自己的 Label 和 TextBox 控制項,並手動關聯它們。 如果您啟用排序,則資料行標頭中的連結為 LinkButton 控制項,且需要用戶端指令碼才能發揮功用。若要避免用戶端指令碼的需要,請建立範本,並對這些函式加入 Button 控制項。 |
|
如果您將 ImageUrl 屬性設為圖形檔的 URL,請設定 Text 屬性指定結果圖形的替代文字。 對連結設定 Target 屬性就會開啟新的視窗,不過可及性方針並不建議這種做法。 |
|
此控制項預設不會呈現替代文字。設定 AlternateText 屬性。如果圖形無功能目的,請將 GenerateEmptyAlternateText 屬性設為 true,以呈現設為空字串 ("") 的 alt,如此會讓螢幕助讀員略過圖形。 |
|
此控制項需要用戶端指令碼才能運作。 此控制項預設不會呈現替代文字。設定 AlternateText 屬性。 不要使用 ImageButton 控制項做為影像對應,因為它不支援具有自己替代文字的區域。請改為使用 ImageMap 控制項。 |
|
此控制項預設不會呈現替代文字。設定 AlternateText 屬性。 如果您將控制項或個別作用點 (Hot Spot) 的 HotSpotMode 屬性設為 PostBack,則控制項需要用戶端指令碼才能發揮功用。 對連結設定 Target 屬性就會開啟新的視窗,不過可及性方針並不建議這種做法。 |
|
若要使用控制項呈現文字方塊或其他控制項的 label,請將 AssociatedControlID 屬性設為控制項的 ID,以與標籤相關聯。 |
|
一定將其他 Web 組件控制項加入 LayoutEditorPart 控制項,讓網頁成為可以存取的網頁。否則,使用者只可以使用滑鼠拖曳 Web 組件控制項。 此控制項並未產生 label 項目以關聯標籤與控制項。 所有的動詞命令都會產生相同的連結文字。 會呈現連結的替代文字,但是此文字是無法自訂的。 此控制項需要用戶端指令碼才能運作。 此控制項不會呈現便捷鍵或定位點索引設定。 |
|
此控制項需要用戶端指令碼才能運作。 不要將多個 LinkButton 控制項的 Text 屬性設為相同的字串,因為依賴螢幕助讀員的使用者將無法辨別按鈕。 |
|
控制項不支援建議的 ListItemGroup 以允許清單細分成區段。 將 AutoPostBack 屬性設定為 true,就會使控制項需要用戶端指令碼。 |
|
當 LoginButtonType 屬性設為 Image 時,LoginButtonText 屬性的值會用做替代文字。 此控制項不會呈現便捷鍵或定位點索引設定。 |
|
將 ToolTip 屬性設為文字 (例如 [以使用者名稱的身分登入]),以便螢幕助讀員正確地解譯控制項的文字。 |
|
控制項會使用 LinkButton 控制項顯示 [登出] 連結,因此需要用戶端指令碼才能發揮功用。若要避免用戶端指令碼的需要,請建立範本,並對這些函式加入 Button 控制項。 |
|
將控制項的 SkipLinkText 屬性設定為字串,讓控制項呈現建議的略過巡覽連結。 此控制項需要用戶端指令碼才能運作。 在不支援控制項之完整用戶端功能的瀏覽器中,瀏覽器將會重新整理視窗以顯示次要巡覽,這可能會讓螢幕助讀員重新開始閱讀網頁。 對連結設定 Target 屬性就會開啟新的視窗,不過可及性方針並不建議這種做法。 控制項配置是使用 HTML 表格呈現的,部分方針不建議這樣做。 可及性方針不建議設定控制項具有滑鼠指標副作用 (例如建立快速鍵功能表)。 |
|
此控制項並未產生 label 項目以關聯標籤與控制項。 所有的動詞命令都會產生相同的連結文字。 會呈現連結的替代文字,但是此文字是無法自訂的。 此控制項需要用戶端指令碼才能運作。 此控制項不會呈現便捷鍵或定位點索引設定。 |
|
如果網頁的 ClientTarget 屬性設為 Downlevel,則控制項需要用戶端指令碼才能發揮功用。 當 SubmitButtonType 屬性設為 Image 時,SubmitButtonText 屬性的值會用做替代文字。 此控制項不會呈現便捷鍵或定位點索引設定。 |
|
此控制項並未產生 label 項目以關聯標籤與控制項。 所有的動詞命令都會產生相同的連結文字。 會呈現連結的替代文字,但是此文字是無法自訂的。 此控制項需要用戶端指令碼才能運作。 此控制項不會呈現便捷鍵或定位點索引設定。 |
|
將 AutoPostBack 屬性設定為 true,就會使控制項需要用戶端指令碼。 |
|
將 AutoPostBack 屬性設定為 true,就會使控制項需要用戶端指令碼。 |
|
將控制項的 SkipLinkText 屬性設定為字串,讓控制項呈現建議的略過巡覽連結。 在網站導覽 XML 檔中,設定每個網站導覽節點的 description 屬性 (Attribute),以向螢幕助讀員提供可用於識別巡覽連結的標題。 |
|
Table、TableRow、TableCell、TableHeaderCell、TableHeaderRow 和 TableFooterRow |
如可及性方針中所建議的,設定控制項的 Caption 和 CaptionAlign 屬性以呈現資料表的標題。 當建立 Table 物件時,會加入 TableHeaderRow 和 TableHeaderCell 控制項。 在 TableHeaderRow、Table 和 TableFooterRow 控制項中,將 TableSection 屬性設為 TableBody、TableHeader 或 TableFooter。如此會讓控制項分別呈現 thead、tbody 和 tfoot 項目。 在 TableCell 控制項中,設定 AssociatedHeaderCellID 屬性,讓控制項呈現將儲存格與其標題相關聯的 header。 設定控制項的 Scope 屬性,將標頭與對應的資料行相關聯。 |
將 AutoPostBack 屬性設定為 true,就會使控制項需要用戶端指令碼。 |
|
將控制項的 SkipLinkText 屬性設定為字串,讓控制項呈現建議的略過巡覽連結。 將節點的 PopulateOnDemand 屬性設為 true,會導致控制項的行為方式與可及性方針不相容。 此控制項需要用戶端指令碼才能運作。 為 TreeView 控制項或個別節點將 Target 屬性設為 _blank,會讓控制項開啟新視窗,不過可及性方針並不建議這種做法。 |
|
此控制項並未產生 label 項目以關聯標籤與控制項。 所有的動詞命令都會產生相同的連結文字。 會呈現連結的替代文字,但是此文字是無法自訂的。 此控制項需要用戶端指令碼才能運作。 此控制項不會呈現便捷鍵或定位點索引設定。 如果將 HelpMode 屬性設為 Modal 或 Modeless,則控制項會開啟新視窗,不過可及性方針並不建議這種做法。 |
|
控制項會呈現 LinkButton 控制項以進行巡覽,這需要用戶端指令碼才能發揮功用。若要避免用戶端指令碼的需要,請建立範本,並對這些函式加入 Button 控制項。 |
|
Validator 控制項 |
根據預設,驗證控制項會呈現用戶端指令碼以執行用戶端驗證。不過,因為內建的 Validator 控制項 (CustomValidator 控制項除外) 會在伺服器程式碼中自動執行多餘的驗證檢查,所以您可以將 EnableClientScript 屬性設為 false,以避免為驗證控制項呈現用戶端指令碼。 將 Text 和 ErrorMessage 屬性設為有意義的錯誤訊息。不要將它們設為星號 (*)。 |