2012-03-05 26 views
8

Định nghĩa W3C có vẻ hơi mơ hồ khi nói đến các <nav> tag:sử dụng Semantic của <nav> trong HTML5 với yếu tố hình thức tìm kiếm

Yếu tố nav đại diện cho một phần của một trang liên kết đến các trang khác hoặc các phần trong trang: một phần có liên kết điều hướng.

Không phải tất cả các nhóm liên kết trên trang đều phải nằm trong phần tử điều hướng - phần tử này chủ yếu dành cho các phần bao gồm các khối điều hướng chính. Đặc biệt, các chân trang thường có một danh sách ngắn các liên kết đến các trang khác nhau của một trang, chẳng hạn như các điều khoản dịch vụ, trang chủ và trang bản quyền. Các yếu tố chân trang một mình là đủ cho các trường hợp như vậy; trong khi một yếu tố nav có thể được sử dụng trong các trường hợp như vậy, nó thường là không cần thiết.

Tác nhân người dùng (chẳng hạn như trình đọc màn hình) được nhắm mục tiêu đến người dùng có thể hưởng lợi từ thông tin điều hướng bị bỏ qua trong lần hiển thị đầu tiên hoặc người có thể hưởng lợi từ thông tin điều hướng có sẵn ngay lập tức, có thể sử dụng yếu tố này như một cách để xác định nội dung nào trên trang ban đầu bỏ qua và/hoặc cung cấp theo yêu cầu.

Dựa trên cách giải thích rất nghiêm ngặt về định nghĩa của chúng và những gì tôi đã gặp phải thông qua xác thực, có vẻ như <nav> chỉ nên chứa các yếu tố danh sách. Tuy nhiên, không nên tìm kiếm được coi là một hình thức điều hướng trong một loạt các trang?

Mặc dù tôi hiểu rằng việc sử dụng chính của nó là dành cho đại lý người dùng, nhưng dường như vẫn còn dư thừa để có một <nav> trước thẻ <ul> nếu trước đây chỉ hoạt động như một vùng chứa. Sẽ có ý nghĩa hơn nếu <nav> có thể chứa các yếu tố khác liên quan đến điều hướng, không giới hạn trong danh sách các liên kết.

Ví dụ:

<nav role="navigation"> 
    <form action="http://google.com/search" method="get"> 
    <fieldset role="search"> 
     <input type="hidden" name="q" value="site:mysite.com" /> 
     <input class="search" type="text" name="q" results="0" placeholder="Search"/> 
    </fieldset> 
    </form> 

    <ul class="top-navigation"> 
    <li><a href="/">Home</a></li> 
    <li><a href="/about.html">About Me</a></li> 
    <li><a href="/archive.html">Archives</a></li> 
    </ul> 
</nav> 

Bên cạnh xác nhận, đây không phải là cách thức sử dụng của <nav>? Điều gì sẽ ảnh hưởng đến một ít quan tâm đến việc xác thực, hơn là đảm bảo trình đọc màn hình và các công cụ trợ năng khác có thể hiển thị đúng trang?

Trả lời

7

Phần tử nav nên được sử dụng cho các mục điều hướng chính của trang web, không chỉ tất cả các mục điều hướng. Nó cũng không phải chứa một ul nhưng vì phần lớn thời gian nó chứa một danh sách, nó thường có ý nghĩa, nhưng không cần thiết.

Nếu tìm kiếm của bạn là phương pháp điều hướng chính của trang web, thì bạn có thể đặt nó trong một số nav, mặc dù từ ví dụ bạn đưa ra ở trên, danh sách đó dường như là điều hướng chính chứ không phải tìm kiếm của bạn.

Tôi đã viết một chút về cách sử dụng thẻ nav tại to nav or not to nav?, mặc dù nó không đề cập đến tìm kiếm, đây là một quan sát thú vị.

+0

Tôi thích cách diễn giải của bạn tốt hơn một chút khi tôi đọc thông số kỹ thuật của w3c. Và mặc dù tìm kiếm không phải là phương pháp điều hướng chính cho trang web của tôi, nó vẫn là "khối điều hướng chính" theo ý kiến ​​của tôi. Với HTML5 ở dạng bản nháp, tôi nghĩ rằng tôi quan tâm hơn đến cách các tác nhân người dùng khác nhau sẽ giải thích khối mã đó và cách nó có thể được tối ưu hóa cho một mục đích như vậy. Đó là lý do tôi đưa vào một số vai trò của ARIA. Hy vọng ai đó có nhiều kiến ​​thức về chủ đề đó sẽ kêu vang. Cảm ơn phản hồi của bạn mặc dù, rất nhẹ nhõm khi thấy rằng tôi không phải là người duy nhất quan tâm đến yếu tố này. – saneshark

+0

Nếu nó là một khối điều hướng chính, sau đó đặt nó trong một nav. Không ai trong số các tác nhân người dùng làm bất cứ điều gì với nó vào lúc này. Liên quan đến các công cụ trợ năng, tôi nghĩ rằng tìm kiếm tốt hơn là được đánh dấu là tìm kiếm (sử dụng vai trò mốc "tìm kiếm"). Ngoài ra, bạn chỉ nên đánh dấu một phần tử trên trang có vai trò mốc "điều hướng", vì vậy bạn nên đính kèm phần đó vào danh sách của mình và "tìm kiếm" vào tìm kiếm. Bạn có thể đọc thêm về các vai trò này và một số yếu tố HTML5 tương ứng (cuộn xuống) tại: http://www.paciellogroup.com/blog/2010/10/using-wai-aria-landmark-roles/ –

+0

Cảm ơn Ian. Tôi đã xem trang paciellogroup và phần [[

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