Virtualized content presents challenges for users of assistive technologies (ATs). Generally, an AT’s view of the document is limited to what is physically present in the markup. Without some indication that further content exists, the AT cannot accurately describe and navigate the web page. For example, some ATs allow the user to skim the headings in a document by jumping from one to the next. After reading the last realized heading, the AT has no way of knowing that another heading might exist in virtualized content, nor does it have a way of discovering that there is even virtualized content to begin with. The AT, and the user, thus incorrectly conclude that the last heading in the document has been reached.
- Enable ATs to recognize and account for virtualized content when navigating a web page.
- Protect the privacy of AT users by avoiding mechanisms that would allow for fingerprinting.
A new attribute,
aria-virtualcontent , indicates whether an element contains virtualized content. The default value is
A virtual content container is any element that has a non-default value for
A virtual content edge is an edge of a virtual content container where the webpage can realize content.
aria-virtualcontent attribute can have one of several keyword values, or multiple values separated by spaces, establishing which edges of the container are virtual content edges:
inline-start . (Future expansion of the attribute value may provide hint(s) about the nature of the virtualized content. ATs could use this information when implementing features such as “navigate to next heading” or “next table” etc.)
Marking an element as a virtual content container establishes a contract between the web page and ATs. Specifically:
- If the virtual content container is also a scroll container, the web page MUST begin steps to realize content no later than when the virtual content container is scrolled to a limit where a virtual content edge exists.
- If the virtual content container is not a scroll container, the web page MUST begin steps to realize content no later than when a virtual content edge enters the scrollport of its nearest ancestor scroll container.