Giter Site home page Giter Site logo

a11y's Introduction

Accessibility projects and tickets

I have incorporated accessibility into a range of personal projects, and tickets across the Software Engineering Grad Scheme.

Side project: An accessible D3 line chart with ARIA table semantics

See https://github.com/radiocontrolled/d3-aria-table-chart

Rotation: News Discovery and Curation

Make 'Most Recent' offscreen h2 optional in Morph news-lx-wrapper component

https://jira.dev.bbc.co.uk/browse/NEWS-6311
On News companies, commmodities, currencies and market pages, a 'Latest Updates' H2 was present, alonside an offscreen 'Most Recent' h2. This created a P2 accessibility / usability error for AT users listening to these pages. To fix this bug, I created an optional config to suppress the 'Most Recent' h2 in the Morph news-lx-wrapper component and updated the relevant Mozart page configs for companies, commodities and currencties.

Example page free of offscreen 'Most Recent' h2:
https://www.bbc.co.uk/news/topics/crr7mlg0gqqt/apple

Rotation: CPS

Optimo header

Optimo is the next generation article editor from CPS. Building a new web-based editor presents a good opportunity to incorporate accessibility 'from the ground up'. I worked on the beginning stages of its UI in a workstream that focused on Optimo's header. The header is a React component that provides navigation and article creation buttons.

Early stage Optimo header with Optimo logo, dashboard, and create article button

Implementation of the Optimo header based on early wireframe



The first way I incorporated accessibility into this workstream was by adding ARIA support to an Optimo dependency. Optimo's header implements the header provided by int-gel-matter. Int-gel-matter is a bare-bones library of React components with the GEL 'look and feel'. Through manual testing I observed the int-gel-matter header was missing ARIA support, so I added this support:

PR: Add optional role attribute to AppHeader
https://github.com/bbc/int-gel-matter/pull/133

PR: AppHeader aria label
https://github.com/bbc/int-gel-matter/pull/141

The second way I incorporated accessibility into the Optimo workstream through knowledge sharing. In February 2018, I presented a CPS tech session walkthrough of the Optiomo header's accessibility features, including

  • keyboard accessibility
  • buttons with appropriate contrast on hover/focus states
  • ARIA landmark roles
  • ARIA support in the int-gel-matter header

[CPSROADMAP-7171] Add Homes and Genre to Vivo Dashboard and Search

In the course of this ticket, which I pair programmed with Olivier Huin, I ensured appropriate colour contrast of home/genre information added to Vivo Dashboard, and implemented this change:
https://github.com/bbc/vivo-client/pull/547

Rotation: Visual Journalism

In Visual Journalism I worked on a range of bespokes. Across this work, I experimented with the use of ARIA roles, undertaking testing against BBC News accessibility guidelines where possible. A key point of reference apart, apart from these guidelines, was the Paciello group's suggestions for working with SVG accessibility around identifying SVGs with role="img" and using aria-labelledby to reference title and desc elements (this approach may be superceded by other techniques). Some examples of where I did this work include:

So for example, the Usian Bolt piece is an interactive piece that exposes keyboard operable left/right controls, and makes use of ARIA roles and labelling:

Usain bolt piece screengrab, showing line chart with accessible controls visible and a snapshot of the inline SVG in the DOM

This approach makes it more accessible than a standard D3 chart or animation, but what successes and lessons should be drawn from this example that might be applicable to future bespokes and reusable UI components?

After my rotation, I concluded the above approaches require more thorough testing that wasn't possible to due news deadlines. This has led to my current investigation of d3 charts and ARIA. Aside from bespokes, I also looked at the keyboard accessibility of the VJ facewall and various VJ components incorporating best practices into my development work.

Rotation: iPlayer Radio

Mandatory Sign-In Modal accessibility

I demonstrated the modal window that pops up for iPlayer Radio's mandatory sign in feature was not accessibile as it was:

  • not operable for keyboard-only users
  • had a keyboard trap
  • had innappropriate contrast

To address this, I incorporated https://github.com/edenspiekermann/a11y-dialog as a dependency of the MSI feature and the addressed other accessibility bugs.

See https://jira.dev.bbc.co.uk/browse/IPR-3176

a11y's People

Contributors

radiocontrolled avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.