我傾向於試圖避免在功能之外使用ID。這給我帶來了我的問題,當在表單中標記項目時有多種方法。我一直這樣做是爲了避免ID的具體方式;但是,替代方法的專業和客戶是什麼?一種方式對瀏覽器的語義意義是否比其他語義更重要?無障礙如何在其中發揮作用?表單標籤的語義
我實現的常用方法:
<form role="form" action="#" method="post" name="form" novalidate>
<label>
<span>Search</span>
<input role="search" type="search" placeholder="Search" name="s">
</label>
<button role="button" type="submit" name="s-btn">Search</button>
</form>
但是,您也可以使用for=""
和標籤的ID爲相應的字段。這對type="radio"
和type="checkbox"
來說明顯更好,但它是否具有比上述更好的語義值?
<form role="form" action="#" method="post" name="form" novalidate>
<label for="s">Search</label>
<input role="search" type="search" id="s" placeholder="Search" name="s">
<button role="button" type="submit" name="s-btn">Search</button>
</form>
而且你甚至可以使用WAI-ARIA與ID的標記爲好,應該在這個凝聚用於與for=""
或者是一個獨立的標記方法?
<form role="form" action="#" method="post" id="Form" novalidate>
<label id="s" for="sf">Search</label>
<input role="search" aria-labelledby="s form" id="sf" type="search" placeholder="Search" name="s">
<button role="button" aria-labelledby="form" type="submit" name="s-btn">Search</button>
</form>
我想這個問題是帶來由於無休止的追求均衡維護,優化,語義和可訪問性。
我通常會避免使用ID,以便在有/必要時可以通過服務器端和jQuery目的自由使用它們。通常使用名稱從相應的表單/字段集提交表單數據。你提出了許多有效的觀點,我非常感謝你寫這篇文章的時間以及你如何解釋它的特殊性。我從來沒有在CSS中定義ID,除非我需要在別人的寫作中快速覆蓋事物。但可能會開始重新使用ID,因爲字段不再需要成爲表單的孩子,並且在採用此路線時可能會增加一點靈活性。再次感謝! – darcher
我不熟悉名稱是必需的任何情況,但這並不意味着它們不存在。如果使用得當,javascript getElementById是完美的。所以這也是一個相對的答案。大聲笑。我讀過一篇極度高度拋光的開發者的文章,曾經名爲「It Depends ...」,基本上是在開發一個事件流鏈,但也橫向處理事件,以展示各種可能的結果。那是我們的媒介;最好的建議是使用網絡標準進行開發並使用網絡平臺技術。 – albert
重新命名:在PHP中,爲了從控件中獲取值以顯示在屏幕上,插入數據庫等,您可以獲取'name',而不是'id'。我不能評論其他語言 –