2011-06-28 6 views

Trả lời

6

Tôi không biết một yếu tố cụ thể hoặc thuộc tính để kết nối họ, nhưng bạn có thể làm như vậy bằng cách sử dụng thuộc tính ARIA aria-describedby:

<label for="firstname">First Name</label> 
<input type="text" id="firstname" aria-describedby="firstname-explanation" /> 
<p id="firstname-explanation">e.g. John</p> 

Nhưng trong đó có tất cả mọi thứ trong label dường như tốt với tôi (hoặc cung cấp khả năng tạo kiểu tốt, vì bạn có một vùng chứa - ngữ nghĩa):

<label> 
    <span class="form-item-title">First Name</span> 
    <input type="text" id="firstname" /> 
    <span class="form-item-description">e.g. John</span> 
</label> 

Hoặc bạn thậm chí có thể trộn hai số.

Một cách tiếp cận khác có thể là đưa mô tả vào thuộc tính(hoặc placeholder như được đề xuất bởi @Alohci) của phần tử input (ngữ nghĩa là mô tả nó), nhưng trong trường hợp này bạn phải chèn nó vào đánh dấu qua Javascript (hoặc CSS sử dụng input:after { content : "e.g. " attr(placeholder) } - được đề xuất bởi @Alohci).

+0

Điều đó có thể hiệu quả. Tôi sẽ giữ trong một thời gian đầu tiên để xem có bất kỳ chuyên gia HTML nào có kiến ​​thức bách khoa về các yếu tố có thể đưa ra câu trả lời dứt khoát trước khi tôi đánh dấu câu trả lời này đúng không. –

+2

aria-describedby là một nỗ lực dũng cảm, nhưng nó có một vài vấn đề. Đầu tiên, thông số HTML5 làm rõ rằng các thuộc tính aria là * chỉ * chỉ thị cho trình duyệt về cách trình duyệt nên hiển thị nội dung cho API trợ năng của nền tảng và không tự truyền đạt thông tin ngữ nghĩa. Thứ hai, các ví dụ không phải là mô tả. Một giải pháp ngữ nghĩa lý tưởng có thể là làm cho các thuộc tính giữ chỗ ví dụ và tạo kiểu cho chúng ở bên ngoài hộp nhập như được mô tả trong câu hỏi, nhưng đó là cho tương lai, không phải bây giờ. Bây giờ, tôi sẽ sử dụng phần tử '

+0

@Alohci Tôi đồng ý với hầu hết những điều bạn nói. Mặc dù đôi khi bạn tốt nhất có thể mô tả một cái gì đó với một ví dụ ('placeholder' vẫn là một ý tưởng hợp lệ, nhưng có cùng một vấn đề như' title' ở đây). Để có kết quả tốt nhất, thay vì 2 'nhãn' được đề xuất của bạn, tôi vẫn sẽ đi với một 'nhãn' xung quanh toàn bộ nội dung (điều này hoàn toàn hợp lệ). – kapa