|menu before content in code, or content before menu? (screen readers)|
With absolute positioning I put a menu next to the content, which is a not so long text every time.
In the document I can place the menu before the the content, so then I think people with screen readers will first hear all the menu items before getting to the content. I can also do it otherwise so the don't have to listen to the menu items every time, but then I think the menu is harder to access? And I think it may be non-standard.
I couldn't find this in WCAG.
What would be the best? Thanks.
Not an accessibility expert, but I think it's preferable to have the menu follow the main content in the code, and then provide skip navigation for the visitor, but it doesn't really matter the order as long as you have skip nav to get the user to the content or nav, whichever comes second.
Here's a good guide
good suggestion, thanks!
IMO it depends on what kind of page it is.
For homepage, you need to put the menu before content since it'd be better for visitors to realize if it is the right site as they expected, for promotion page or product's detail page, you need to put then content before the menu for sure =)
I can't remember where I read this and couldn't find direct references, so you can take this as hearsay/recommendation or look it up yourself. :-) I know it conflicts with the webaim guidelines, so maybe it's just a preference.
They say "put the content first" but . . . why would you need a skip navigation link then? Personally I prefer to leave the document in it's natural state, making for less work: navigation, h1, content, navigation again. In respect to accessing the content of a site, I think navigating takes priority over the content. To navigate ,you use the tab key (or other user-configured input.) To access the content, you can scroll with the down arrows or . . . use the skip navigation link.
You're by no means locked into this if you want your content closer to the top, but to maintain a "navigation-first" structure you have to do more work (so what's new. :-) ) You can apply tabindex attributes on all your links, and form controls, thus controlling where the tabs land. The catch is that if you do this, you have to do it over the entire page, and your entire site. This allows you to move content first in the source code (which is a really good idea for search engines,) but this makes it an immense amount of work and increases maintenance. Move something higher in the source/page, you need to re-order all the tab indices.