- From: Alastair Campbell <acampbell@nomensa.com>
- Date: Wed, 20 Apr 2016 08:41:20 +0000
- To: Mike Elledge <melledge@yahoo.com>
- CC: WCAG WG <w3c-wai-gl@w3.org>
- Message-ID: <30081421-B76A-4E55-8425-015D20D29330@nomensa.com>
Hi Mike,
I’m a little confused about whether you mean the HTML5 elements, and/or the aria landmarks? They form a venn diagram of overlapping usage! For example, the HTML5 <header> can be a root element with a role of banner, but it can also be used within a div/section to mark the header area of that section, which would include the heading(s).
For the top level landmarks, my understanding is that the key heuristics are:
* Contain all content.
* Aim for 3-6 landmarks appearing in AT so it is useful for navigation, but isn’t too busy.
* Separate what is repeated across pages, and what is unique to this page.
Assuming you mean the overall page layout, the header (and footer/contentinfo) should contain things that are repeated across pages, but the <main> should be content unique to the page.
If the nav is repeated across pages, then include it in the banner/header. If it is local navigation or within-page navigation, then do not include within the banner/header.
So a cut-down example might be:
<header role=“banner”>
logo, search,
<nav role=“navigation” aria-label=“Main menu”></nav>
</header>
<main>
<h1>
Content etc.
</main>
<nav role=“navigation” aria-label=“Section menu”></nav>
<footer role=“contentinfo”>
copyright, links etc.
Your example would be re-formed as:
<header role=“banner>
<img src="images/company logo.gif" width="129" height="66" alt="Company Logo"/>
<p>HTML5 and ARIA in Action</p>
<nav aria-label="Main navigation">
<ul>
<li><a href="Screen_Reader_Demo_D.html">Home</a></li>
<li><a href="Examples.html" >Examples</a>
<ul>
<li><a href="A11ble_Form.html">Accessible Form</a></li>
<li><a href="A11ble_Calendar.html">Accessible Calendar</a></li>
<li><a href="A11ble_Dialog.html">Accessible Dialog</a></li>
<li><a href="A11ble_Graph.html">Accessible Graph</a></li>
</ul>
</li>
<li><a href="">Techniques</a></li>
</ul>
</nav>
</header>
<nav aria-label="You are here"> Home Page
</nav>
<main>
<h1>Screen Reader Demonstration</h1>
The homepage might be an odd case, as the <h1> could be considered for the site, but on most pages it would be the first content heading on the page.
Breadcrumbs are a difficult case though, they could be considered unique to the page or different per page, as they are a bit of both! What do other people do for breadcrumbs?
-Alastair
PS. I created this little cheatsheet of the structural elements most useful for accessibility a while ago (might need updating):
http://design4access.nomensa.com/structural-elements.html
From: Mike Elledge <melledge@yahoo.com<mailto:melledge@yahoo.com>>
Reply-To: Mike Elledge <melledge@yahoo.com<mailto:melledge@yahoo.com>>
Date: Tuesday, 19 April 2016 at 20:38
To: WCAG WG <w3c-wai-gl@w3.org<mailto:w3c-wai-gl@w3.org>>
Subject: Proper use of <header> and <nav> elements
Resent-From: <w3c-wai-gl@w3.org<mailto:w3c-wai-gl@w3.org>>
Resent-Date: Tuesday, 19 April 2016 at 20:41
Hi Everyone--
I find <header>, <nav> and <menu> to be confusing.
It seems to me that <header> should encompass things like a page logo and, if present, heading(s) at the top of the page. Top-level navigation, on the other hand, should be identified by the <nav> element, and be separate. I have seen, however, top-level navigation included in the <header> tag, which seems incorrect.
I've also seen breadcrumbs identified by the <nav> element; however, if breadcrumbs are present, it seems like they and top-level navigation should be further differentiated by aria-label (i.e., "You are here" and "Main navigation", for example). I haven't used <menu> in the top navigation because it overrules the list semantics.
Like so:
<header>
<img src="images/company logo.gif" width="129" height="66" alt="Company Logo"/>
<h1>Screen Reader Demonstration</h1>
<p>HTML5 and ARIA in Action</p>
</header>
<nav aria-label="Main navigation">
<ul>
<li><a href="Screen_Reader_Demo_D.html">Home</a></li>
<li><a href="Examples.html" >Examples</a>
<ul>
<li><a href="A11ble_Form.html">Accessible Form</a></li>
<li><a href="A11ble_Calendar.html">Accessible Calendar</a></li>
<li><a href="A11ble_Dialog.html">Accessible Dialog</a></li>
<li><a href="A11ble_Graph.html">Accessible Graph</a></li>
</ul>
</li>
<li><a href="">Techniques</a></li>
</ul>
</nav>
<nav aria-label="You are here"> Home Page
</nav>
Does this seem correct to you?
Thanks!
Mike
Received on Wednesday, 20 April 2016 08:41:52 UTC