2 回答

TA貢獻1951條經驗 獲得超3個贊
無論您是否可以使警告消失,請記住驗證器和檢查器的作用只是為了引起您對潛在問題的注意,但并非每條消息都不一定是真正的問題。對于可訪問性檢查器尤其如此。他們在全球范圍內做出了良好的假設,但有時無法區分錯誤和有點奇怪但出于某種原因需要的東西。
使用此類工具最重要的是,如果您收到無法/不想修復的警告,請準確了解其含義。如果您可以接受其中的含義,那么您也可以接受警告。要確切地知道它意味著什么,最好的當然是進行手動測試。可訪問性工具永遠無法取代手動測試。
回到您的具體情況,當然該工具在技術上是正確的:表單必須有一個提交按鈕。但實際上,如果表單既沒有任何字段也沒有任何按鈕,則無法發送任何內容。因此,對于您和用戶(如果有的話)來說,只會產生很少的煩惱。
不過,您仍然可以在沒有實際形式的頁面中嘗試兩件事:
按照其他答案中的建議將 添加
role="presentation"
到 the 中<form>
,以便屏幕閱讀器在沒有任何內容可填寫時不會向用戶宣布表單display:none
如果您真的想讓可訪問性檢查器滿意,請添加一個虛擬提交按鈕,禁用并隱藏,以便沒有人可以看到或單擊它。請注意,這可能會給使用自定義或禁用 CSS 的用戶帶來麻煩。當然,當已經有一個真正的提交按鈕時,就不應該有任何額外的提交按鈕。
思考第二項:你更喜歡什么?工具中的警告,或者一個可能會給 1000000 名用戶中的 1 名用戶帶來麻煩的小黑客解決方案,如果您錯誤地留下了正常按鈕和虛擬按鈕,可能還會出現一些有問題的頁面?既然您知道可能會產生什么后果,我個人認為,僅僅為了說您已經做到了而清除警告是不值得的,而是按照您的感覺去做。
不使用屏幕閱讀器時,role=presentation 沒有副作用,因此您對此完全安全。

TA貢獻1864條經驗 獲得超6個贊
我不確定這是否仍會被編譯器標記,或者任何引發錯誤的原因,但您可以使用 display:none 隱藏元素。這也會將其隱藏在輔助技術之外,因此,如果有工具將其標記為問題,則隱藏它可能會阻止其被標記。
您還可以嘗試 role="presentation" ,它基本上告訴輔助技術該元素僅用于視覺目的且不包含任何信息。這有點麻煩,但值得一試。
<form style="display:none" id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
- 2 回答
- 0 關注
- 165 瀏覽
添加回答
舉報