This document describes an approach that content authors can use to provide improved ease of navigation to website visitors.

Introduction

Web sites can contain a huge array of varied and engaging content. This content, and the means of navigating around it, can be presented in almost any way, which makes for tailored and compelling experiences. However, whilst there are several conventions when it comes to navigation, this variability can pose challenges to certain people—and user agents acting on their behalf.

This best practices document aims to address the challenge of making sites more easily navigable for both people (particularly those facing accessibility barriers) and machines. It does this by standardising machine-readable names for common page types. User Agents can then query as to which destinations are supported on a given site (or page of that site), and present this information in an appropriate way for the user.

The User Agent, or a User Agent extension, could provide an interface to allow the user to: view supported common pages using a method, and terminology, that is clear to them; and to request to visit common destination pages directly.

Motivating Use Cases

Out of scope

Though detailed UI design is out of scope, an proof-of-concept UI for enumerating a site's discoverable destinations is depicted below.

A fictional ACME Inc. home page, with the extension pop-up open, showing 6 buttons, each containing emoji and accompanying text names for the discoverable destinations offered by the site: home, accessibility statement, contact, help, log in, and products.
Example UI, via a browser extension running on a custom shopping site

Use Cases and Requirements

This section needs some work.

User research

Our proposed "discoverable destinations" come from work done by the Cognitive and Learning Disabilities Accessibility Task Force.

This is not a complete list—we are consulting with COGA to update the destinations that the WAI-Adapt TF inherited from COGA.

An illustrative set of proposed discoverable destinations is as follows...

Technical requirements

Any approch that would solve these user needs must provide the following.

  1. A way to represent each discoverable destination proposed above.

  2. A mechanism for discovering all discoverable destinations supported by a site—to be used when a UA first visits a site on behalf of the user. In order to do this efficiently, it must be possible to make this query in a single HTTP request. The results would be available to the user via the UI of the UA.

  3. A way to denote the scope of any particular site (or sub-site).

  4. A procedure for visiting a discoverable destination directly (when the user activates the interface in the UA).

  5. A mechanism by which a discoverable destination would be updated (by the content author).

  6. Means to identify when a link on a page takes the user to a sub-page of a discoverable destination page. E.g. a link to the "help on logging in" page (as opposed to the main "help" section landing page, which is where the discoverable destination alone would take the user).

  7. Means to demarcate an element on the destination page that provides the destination content.

  8. A way to indicate the kind of content that the destination provides—e.g. people with cognitive disabilities may need to get help from, or chat to, a human, over the phone, rather than a chatbot, or sending an email.

The last of these requirements—indicating the kind of content or support—is currently an open question, not addressed by the proposed approach below, but may be addressed in a future iteration of this approach, or by a future WAI-Adapt TF project.

The "discoverable destinations" approach

This involves using the <link> element, and custom rel attribute values, to signpost discoverable destinations on a site.

The discoverable destination namespace

All possible discoverable destinations will be registered as rel attribute values.

Enumerating discoverable destinations

On the site's home page, the destinations supported by the site would be indicated via <link> elements. For example:

This will provide an overview of the available destinations.

All destinations need to be repeated on all pages of the site. (This is one reason why the URLs in the example begin with /).

Defining a site

Because all destinations are repeated on all pages of a site, if we move to a sub-site, the sub-site will expose all destinations on all of its pages, and thus the UA/AT will be able to present the correct destinations for the sub-site.

Visiting a discoverable destination directly

Updating a discoverable destination

The content author would need to ensure that the <link> elements sent are correct. In practice this would most likely be managed by the CMS powering the site, which could take the repetition out of the authoring process.

When an in-page (anchor, <a>) link points to a page that is a sub-page of a discoverable destination (such as the "help on logging in" page, rather than the "help" home page), this can be indicated by adding a rel value to the anchor.

Demarcating destination content

As discoverable destinations are normal links, they can make use of fragments to point to certain elements on the destination page.

The content/UA/AT can then use this information (and the knowledge that the navigation was via the Discoverable Destination UI) to render the destination page in an appropriate way for the user.

Open Questions

The sub-sections here should be promoted, and match the numbers of the corresponding technical requirements above. Some requirements should be added to that list in order to provide the justification for those requirements being addressed in this section.

Indicating the kind of content

As above, COGA need that we are not yet addressing.

Discoverability and repetition

This is a work-in-progress

Demarcating sub-sites

This is a work-in-progress

Privacy and Security Considerations

We have not completed this section yet.

Acknowledgements placeholder