方法C:樸素,更容易使用
<form action="/path/to/script" id="thisform" method="post"> <p><label for="name">Name:</label><br /> <input type="text" id="name" name="name" /></p> <p><label for="email">Email:</label><br /> <input type="text" id="email" name="email" /></p> <p><input type="submit" value="submit" /></p> </form>
我喜歡方法C的幾個地方.首先,對于類似本示例的單純表單來說,我發(fā)現(xiàn)把每個說明與表單元素放在單獨的段落比較方便,不加上樣式顯示時,段落之間的預設距離應該足以讓你輕松閱讀內(nèi)容.稍后我們還能以CSS為表單內(nèi)包含的<p>標簽設定間隔.
我們甚至更進一步,為表單設定了唯一的id="thisform".因此,剛才我提到的精確間隔大致上可以寫成這樣:
#thisform p{ margin:6px 0; }
這代表將這個表單內(nèi)的<p>標簽的上下外補丁設定為6個像素,覆蓋瀏覽器為一般段落選用的預設值.
方法C與前兩種方法的另一個不同之處在于:盡管每個群組(說明和輸入框)都放在<p>里頭,我們?nèi)砸?lt;br />把他們放在獨立的一行.使用<br />分開每個元素,就能繞過文字長短不一,造成輸入項無法完美對齊的問題.
圖5-4是一般瀏覽器顯示方法C的效果,這邊有使用先前為<p>標簽設定的樣式.
圖5-4.瀏覽器顯示方法C的效果,有對P標簽使用CSS
除了方法C的視覺效果之外,最重要的優(yōu)點:也就是提升易用性的部分.
<label>標簽
使用<label>標簽提升表單的易用性需要兩個步驟,而方法C已經(jīng)完成這兩個步驟了.首先是以<label>將文字說明與相關的表單元素連接在一起,不管是文字輸入框(text field),文字區(qū)塊輸入框(text area),單選框(radio),多選框(checkbox)等等都好.方法C在"Name:"與"Email:"標題上使用了<label>標簽,把它們與輸入資料的元素連接在一起.
第二步則是為<label>標簽加上for屬性,填上對應輸入框的id.
舉例來說.在方法C里面,以<label>標簽把"Name:"包了起來,并且在for屬性里填入與其后面的輸入框id相同的值.
<form action="/path/to/script" id="thisform" method="post"> <p><label for="name">Name:</label> <br /> <input type="text" id="name" name="name" /></p> <p><label for="email">Email:</label><br /> <input type="text" id="email" name="email" /></p> <p><input type="submit" value="submit" /></p> </form>
為什么要用<lable>?
或許聽過其他人說你應該在表單內(nèi)加上<label>標簽.而最重要的問題在于為什么應該要用<label>標簽.
建立label / ID的關聯(lián)能讓屏幕閱讀器為每個表單元素讀出正確的標簽,而不收版面排列方法的影響,這是件好事.同時,<label>標簽正是為了標記表單欄標簽而生,使用這個標簽的時候,我們就是在為每個元素說明意義,強化表單的結構.
在處理單選,多選框時使用<label>標簽還有個額外的好處,那就是大多數(shù)瀏覽器在使用者點擊<label>內(nèi)文字時也會改變元素的值.這樣能為輸入元素造成更大的點擊區(qū)域,讓行動不便的使用者更容易填寫表單(Mark Pilgrim, "Dive Into Accessibility," http://diveintoaccessibility.org/day_28_labeling_form_elements.html).
舉例來說,如果為表單加上一個多選框,讓使用者能夠選擇"記下這些信息",那么我們就能像這樣的使用<label>標簽了:
<form action="/path/to/script" id="thisform" method="post"> <p><label for="name">Name:</label><br /> <input type="text" id="name" name="name" /></p> <p><label for="email">Email:</label><br /> <input type="text" id="email" name="email" /></p> <p><input type="checkbox" id="remember" name="remember" /> <label for="remember">Remember this info?</label></p> <p><input type="submit" value="submit" /></p> </form>
借著以這種方式標記多選框,可以獲得兩個好處:屏幕閱讀器能讀出正確的說明文字(就像這個例子一樣,文字出現(xiàn)在輸入框之后也行),而且能切換多選框的范圍變大了,現(xiàn)在切換范圍除了多選框本身之外,文字部分也包含在內(nèi)(大多數(shù)瀏覽器都支持).
圖5-5就是這個表單在瀏覽器中的顯示效果.我們特別標示了加大之后的多選框切換范圍:
圖5-5.把文字包含在切換范圍內(nèi)的多選框
除了表單與段落之外,最后我還想展示另一個標記表單的方式,使用定義清單.
出處:藍色理想
責任編輯:bluehearts
上一頁 標記語言——表單 [1] 下一頁 標記語言——表單 [3]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|