What is XHTML role attribute? What do you use it for?
I have read W3C's page on this, but it is still vague to me. Is the role
attribute's purpose to clarify the code? Or will it be interpreted by some browsers or spiders?
Can it be used as a DOM selector using some JavaScript libraries (I am thinking so since the id
attribute has to be unique, this could be used to identify multiple resources on a page)?
Solution 1:
The Short Version:
The Role Attribute may give future browsers a way to work intelligently with certain XML elements in a device-independent way. For example, an unordered list that is marked with the role attribute of "navigation" can be interpreted intelligently on browsers in both desktop and handheld environments, allowing it to be displayed clearly in both environments.
The Long Version:
The XHTML Role Attribute defined in this specification allows the author to annotate XML Languages with machine-extractable semantic information about the purpose of an element. Use cases include accessibility, device adaptation, server-side processing, and complex data description.
The attribute describes the role(s) the current element plays in the context of the document. This can be used, for example, by applications and assistive technologies to determine the purpose of an element. This could allow a user to make informed decisions on which actions may be taken on an element and activate the selected action in a device independent way. It could also be used as a mechanism for annotating portions of a document in a domain specific way (e.g., a legal term taxonomy).
Example:
<ul role="navigation sitemap">
<li href="downloads">Downloads</li>
<li href="docs">Documentation</li>
<li href="news">News</li>
</ul>
Given that the XHTML2 Working Group will cease to exist at the end of this year, there's no chance of this specification ever reaching release status in anything resembling its current form. http://www.w3.org/News/2009#entry-6601
Solution 2:
The document you refer to is part of the work of the now discontinued XHTML 2 working group. It is effectively obsolete.
HTML5/XHTML5 also has a role
attribute. Its definition is similar but somewhat more limited - its purpose is to indicate Accessible Rich Internet Applications (ARIA) roles, so that assistive technology such as screen readers can better inform users about the purpose of UI components (widgets), and also help them navigate the web page more easily.
The list of valid roles for ARIA is available at http://www.w3.org/TR/wai-aria/#roles