matatk / landmarks

Allows you to navigate a web page via WAI-ARIA landmarks, using the keyboard or a pop-up menu
http://matatk.agrip.org.uk/landmarks/
MIT License
125 stars 7 forks source link
accessibility aria browser-extension chrome edge firefox keyboard-navigation landmarks opera wai-aria webextension

Landmarks

Build Status

This is a browser extension (for Firefox, Chrome, Opera and Edge) that enables navigation of WAI-ARIA landmarks, via the keyboard or a pop-up menu.

Landmark regions broadly signpost the areas of a page (e.g. navigation, search, main content and so on). They can make navigation considerably easier for people who use the keyboard to navigate and those using assistive technologies such as screen-readers, because they make it much quicker to get an overview and to navigate to (and between) areas of interest.

If you're an author or developer and want to learn about landmark regions, check out the information below on why landmarks rock, and how easy they are to put into your site. If you're using HTML5, you most likely already have landmarks on your site, but there are some ways to make them even more helpful, as described below.

Table of contents

Installation and usage

Use the installation links on the home page to install the extension. When it's installed, you will find documentation on topics such as:

The rest of this file provides information that may be of help and interest to web authors, designers and developers, accessibility testers and browser extension developers.

This extension's support for landmarks

The Landmarks extension uses the Page Structural Semantics Scanner Tests suite; you can find information on standards support there.

Learning about landmark regions

Landmark regions can really help people get a quick overview of your content, and navigate it much more effectively. This can save them a lot of time, so please consider implementing landmarks on your site. If you're using HTML5, you'll almost certainly have some landmarks already, but there are some things you need to know; the info below will help you ensure your landmarks are as helpful as possible.

Please bear in mind the following when implementing landmarks...

Development

You can build and run the current code locally as follows.

  1. Clone the Landmarks repository on GitHub to your computer.

  2. Ensure you have all the required build tools with npm install (you will need Node.js).

  3. Run the tests and build script to create versions of the extension for all browsers with npm run build:all.

    Note: You need to run scripts/generate-valid-elements.ts first, and whenever the source code changes. This checks the static HTML for various ids that the code refers to, and tells TypeScript that they exist. Some ids are computed dynamically, though, and can't currently be checked. This step will eventually be integrated into the build process.

    The built versions of the extension are placed in build/<browser>/ directories and ZIP files for each will be created in the root of the checked-out repository.

  4. To load and use the extension locally in your browser...

    If you have web-ext installed, issue npm run start:<browser> to open the browser with Landmarks freshly installed. It will keep itself up-to-date when you re-build. To manually temporarily load the built extension in each browser, follow these instructions...

Some further info on the test/build process:

Test pages

The following pages are incorporated into the automated test suite, but you can also visit them in-browser to try out the extension's UI.

Acknowledgements

This is a fork of the original landmarks extension written by David Todd at IBM. Thanks to Steve Faulkner for encouraging me to work on this, for feature suggestions, help with the relevant specifications and initial test cases (and again to David Todd for supporting my contributions). Thanks also to The Paciello Group for donating my development time when this was a Firefox-specific extension and during the conversion to the WebExtensions API.