Team guide, Accessibility bugs

The BBC is for everyone. Having an accessibility bug in your product could mean that it’s not for everyone.

Accessibility bugs can disable. They can prevent products and their content being available to and accessible to as many people as possible.

It’s a requirement of all the digital products we produce to meet the BBC Mobile Accessibility Guidelines or equivalent WCAG guidelines outside the UK, so they are accessible to the widest possible audience.

In addition to meeting these guidelines, the level of user experience for users of assistive technology should be comparable where possible, to that of those who don’t use assistive technology.

If you don’t meet a guideline or have a poor user experience when using assistive technology, you have an accessibility bug in your product.

What bugs mean for users

Accessibility bugs don't just apply to users with disabilities. Accessibility bugs mean that our content is not available to and accessible to as many users as possible. All users have different needs, at different times, and in different circumstances. For example, browsing in bright sunlight could make it hard to see the screen of a mobile device for a sighted user, meeting colour contrast levels limits this as much as possible.

Did you know that:

Sources: WHO and Department for Work & Pensions.

Back to page contents

Teams and accessibility bugs

Depending on the severity an accessibility bug can block a release.

How can my team avoid or limit the number of accessibility bugs?

Plan ahead, don’t leave accessibility to the end.

Cross discipline solution

Accessibility is a cross discipline solution in which everyone in the team has a part to play, from Product Owner to Tester. It’s not just the role of a single software engineer in the team. Everyone is responsible for accessibility. Be clear what part you and your discipline have to play.

To help there are accessibility checklists for all team disciplines:

Practices and approaches

The following practices and approaches will help your team, if your team isn’t already carrying out these, start.

Finally, be proactive. Teams are responsible for the products they build. If you need guidance or reassurance, ask an Accessibility Champion or your Accessibility Lead.

Back to page contents

How to categorise bugs

There are 3 categories of accessibility bugs:

P1 accessibility bugs

Not 100% sure if your bug is a P1, ask your Accessibility Lead or Engineering Manager.

P1 bug examples

Example 1 - P1

As a screen reader user, when navigating through the homepage, a heading is announced for ‘Top stories’, though I cannot see any of the top stories.

Why is this a P1? The user can't access content, in this case the top stories. Solution: Remove the code that is causing this content to be hidden to screen readers, such as an aria-hidden attribute.

Top stories component highlighting stories that cannot be read

Example 2 - P1

As a keyboard only user, when I press the ‘tab’ key to move between actionable elements on a page, such as links and buttons, I cannot tab to the ‘Menu’ button in the banner, and therefore cannot access the menu items.

Why is this a P1? The user can't access content, in this case some of the index pages of the website can’t be navigated to. Solution: Add the ‘Menu’ button to the tab order by using the appropriate semantic HTML element e.g. a button.

Menu button highlighted in banner component

P2 accessibility bugs

P2 bug examples

Example 1 - P2

As a keyboard only user, when I activate the ‘Show more updates’ button, keyboard focus is taken to the top of the page.

Why is this a P2? The user can access content though it's hard or causes annoyance. After activating the ‘Show more updates’ button, the user has to navigate to the newly shown updates by starting their journey again from the top of the page, if the user isn’t a sighted user, they also have to identify the new content themselves. Solution: When the ‘Show more updates’ button is activated, move keyboard focus to the newly shown updates.

Live reporting component highlighting new updates

Example 2 - P2

As a screen reader user, I can navigate via the menu or list of links, this contains all the links that are on a given page. When I navigate to a ‘Read more’ link in this list, I am not sure what I would read more about. I also cannot distinguish the content of this link from the other 3 links in the list which are also described as ‘Read more’.

Why is this a P2? The user can access content though it's hard or causes annoyance. As a screen reader user if I am navigating via the menu or list of links, I may not know the context of a link and it can cause annoyance if I have to activate a link to identify the content of it. Solution: Make link text descriptive and if link text is duplicated on a page, ways of making each link unique must also be used, for example, by using an aria label or visually hidden off screen text.

Screen reader list of links highlighting 4 read more links

P3 accessibility bugs

P3 bug examples

Example 1 - P3

As a screen reader user, when I navigate to the ‘Share’ button on an article page, it does not announce if the content of the popup button is already displayed.

Why is this a P3? The user can access content though there is a minor usability or user experience issue. As a screen reader user, it would improve my user experience if the screen reader announced if the content of the popup button was expanded or collapsed. Solution: Add an aria-expanded attribute to the button element.

Share this article component with popup displayed

Example 2 - P3

As a keyboard only user, when I press the ‘tab’ key to move between actionable elements (such as links and buttons) on an article page, there isn’t a ‘Skip to content’ link in the banner, like there is on other pages, such as the homepage.

Why is this a P3? The user can access content though there is a minor usability or user experience issue. As a keyboard only user, it’s not a consistent experience site wide, on some pages there is a skip link and some pages there isn’t, this is inconsistent and confusing. Solution: Add the ‘Skip to content’ link to the banner on all pages. When the user activates this link, it should always take the user to the start of the main content.

Skip to content link highlighted on a banner component
Back to top