This workshop contains 3 exercises, going from basics to more advanced concepts. We start with index.html and we build towards a full landing page by embedding two.html and three.html along the way. In the index.html are some spots reserved where step two and three should be embedded.
In advance, get the repo https://github.com/timdujardin/technical-accessibility-workshop on your computer and open the index.html file. There is no dev server or build present to keep it as small scale as possible. So, you can just open the index.html file in your editor and browser.
The different zones we are working in are indicated in the repo by “TODO”:. If there are any further questions you can always ask during the workshop.
The first exercise focuses on general semantics of a page, the goal is to optimize for efficient navigation, identification and orientation. The following aspects should be considered to make the general page setup more accessible:
- Page title configuration
- Headings outline
- Implement a skip link to the main content (optional) Try this exercise if you feel confident enough, we’ll discuss in group later.
Let’s dive into accessible naming and the different techniques to consider:
- Alternative text for images and icons
- Links with meaningful purpose
Forms are commonly used to provide user interaction on websites and in web applications. For example: login, registering, commenting, and purchasing. This exercise will highlight some of the main considerations to make a form accessible:
- Make the "firstname" and "lastname" required fields.
- Add a section to the form containing 2 fields : "Vehicle registration number" and "Additional vehicle requests". Provide the section with a title "Vehicle information".
- The new section should have a class "app-form__group"
- "Vehicle registration number" is a required text field
- "Additional vehicle requests" is a required textarea with 3 rows of text
- Add input instructions to the 2 new fields, the specific locations are tagged with [instruction-to-add]:
- "Vehicle registration number" : Fill in a format of 2 letters followed by 2 numbers, followed by a space and then 3 letters.
- "Additional vehicle requests" : Limit your requests to 2000 characters.
- Provide inline error messages for the required fields, the specific locations are tagged with [error-message-to-add].
When content changes after initial load, assistive technology (AT) users may not "see" the changes. Some changes are important. Others are not. Live regions enable developers to inform the user of updates and choose, based on importance and urgency, whether to immediately, proactively, or passively inform AT users of changes to the content.
- Add a live region to the page that communicates updates in a non-disruptive way
- Make sure the skeleton is identified as loading state, both visually and semantically
- Add a message to the live region once the asynchronous content is loaded. The message should contain a list of 3 cars: car 1, 2 and 3.
- Add an interactive alert message containing an “ok” and “cancel” button to confirm resetting the current state of the page to the initial state.