2009-10-06 35 views
105

Khi sử dụng thông số "nhãn cho" trên các nút radio, là 508 compliant *, sau đây có đúng không?Sử dụng "nhãn cho" trên các nút radio

<label for="button one"><input type="radio" name="group1" id="r1" value="1" /> button one</label> 

hoặc đây?

<input type="radio" name="group1" id="r1" value="1" /><label for="button one"> button one</label> 

Lý do tôi hỏi trong ví dụ thứ hai, "label" chỉ bao gồm văn bản chứ không phải nút radio thực tế.

* Mục 508 của Đạo luật phục hồi năm 1973 yêu cầu các cơ quan liên bang cung cấp phần mềm và khả năng truy cập trang web cho người khuyết tật.

Trả lời

166

Bạn gần như đã nhận được. Phải là:

<input type="radio" name="group1" id="r1" value="1" /><label for="r1"> button one</label> 

Giá trị trong for phải là id của phần tử bạn đang ghi nhãn.

+4

Bạn trả lời là tất nhiên đúng, nhưng Martha có câu trả lời đúng. Cả hai ví dụ của Martha là HTML5 hoàn toàn hợp lệ. Và ví dụ: nếu bạn muốn toàn bộ nội dung ở trong một khung, thì việc tạo kiểu khung thứ hai bằng css sẽ dễ dàng hơn. Nếu bạn muốn nhãn ở một nơi khác, trước tiên. Nhưng cả hai đều ổn. Trân trọng! –

+4

Hmm .. Làm thế nào để bạn thực hiện một nút chuyển đổi giữa hai nút radio? Bạn không thể có hai ID giống nhau ...:/ –

+0

@NilsSens Mỗi cặp radio và nhãn phải có ID duy nhất nên không bao giờ chia sẻ số –

3

Với việc sử dụng id chính xác và cho (như được Marc W nêu trong một câu trả lời khác), thực tế CẢNH phù hợp với 508. Đây là số example using labels in different ways, cho rằng thực tế là tuân thủ.

66

Hoặc cấu trúc có giá trị và dễ tiếp cận, nhưng các thuộc tính for nên bằng với id của yếu tố đầu vào:

<input type="radio" ... id="r1" /><label for="r1">button text</label> 

hoặc

<label for="r1"><input type="radio" ... id="r1" />button text</label> 

Thuộc tính for là không bắt buộc trong phiên bản thứ hai (nhãn chứa đầu vào), nhưng IIRC có một số trình duyệt cũ hơn không làm cho văn bản nhãn có thể nhấp được trừ khi bạn đã bao gồm nó. Phiên bản đầu tiên (nhãn sau khi đầu vào) là dễ dàng hơn để phong cách với CSS bằng cách sử dụng anh chị em liền kề selector +:

input[type="radio"]:checked+label {font-weight:bold;} 
+7

đúng của ID, mặc dù trong ví dụ thứ hai, thuộc tính "for" là không bắt buộc. – Ishmael

+4

Tôi nghĩ rằng có một số phiên bản trình duyệt chỉ làm cho văn bản nút "có thể nhấp" nếu bạn đã sử dụng thuộc tính 'for', tức là gói đầu vào bên trong nhãn không đủ. – Martha

+0

@Martha - Bạn có biết trình duyệt nào không? – Kirkland

Các vấn đề liên quan