68
BBC Olympics An accessibility case study Alistair Duggin London Web Standards - September 2013 Tuesday, 17 September 13

BBC Olympics: An accessibility case study

Embed Size (px)

DESCRIPTION

Presented at London Web Standards September 16th 2013

Citation preview

Page 1: BBC Olympics: An accessibility case study

BBC OlympicsAn accessibility case study

Alistair Duggin

London Web Standards - September 2013

Tuesday, 17 September 13

Page 2: BBC Olympics: An accessibility case study

BBC Olympics Introduction

Alistair Duggin,Lead Front End Developer,BBC Sport Olympics Desktop Website

> About the Project> Challenges> Desktop and Tablet> Lessons Learnt

Tuesday, 17 September 13

Page 3: BBC Olympics: An accessibility case study

About the Project

Tuesday, 17 September 13

Page 4: BBC Olympics: An accessibility case study

BBC Olympics About the Project

The first truly digital Olympics. Never miss a moment

Tuesday, 17 September 13

The most ambitious and comprehensive BBC digital project to dateLive and catch-up video at the heart of the BBC’s online coverage24 high definition live streams2500 hours of video coverageDelivered to mobile, tablet, PC, and Connected TVThe first truly digital Olympics where the public would be able to never miss a moment

Page 5: BBC Olympics: An accessibility case study

“Our aspiration was that just as the Coronation did for TV in 1953, the Olympics would do for digital in 2012Phil Fearnley, General Manager, News & Knowledge at BBC

Tuesday, 17 September 13

Page 6: BBC Olympics: An accessibility case study

BBC Olympics About the Project

Built around the sports domain

AthleteUsain Bolt

EventMen’s 100m

SportAthletics

VenueOlympic Stadium

CountryJamaica

Tuesday, 17 September 13

Interconnected nodesAthlete - e.g Usain BoltCountry - e.g JamaicaSport - e.g AthleticsEvent - e.g Men’s 100mVenue - Olympic Stadium

Page 7: BBC Olympics: An accessibility case study

BBC Olympics About the Project

> 10, 000 Athlete> 205 Countries> 36 Sports> 304 Medal Winning Events> 30 Venues

A page per domain item

... all interconnected

Tuesday, 17 September 13

Page 8: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Page composed of components, including:Facts and FiguresNewsVideo MedalsScheduleResults

Page 9: BBC Olympics: An accessibility case study

BBC Olympics About the Project

Lots of other components

Tuesday, 17 September 13

Make the experience as rich, engaging and interactive as possible.

Top trump style comparison components for countries athletesTwitter modulesComponents to promote live video streamsCarousel of to promote athletes and results

Page 10: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Each page type had an index page.Countries.

Page 11: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Athletes - and the ability to filter by sport, event

Page 12: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Venues

Page 13: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Sports

Page 14: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

An event index for each sport

Page 15: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

2 versions of a fully comprehensive schedule - a grid and a list view - providing alternative ways to get to the schedule information that you wanted.

The schedule grid view provided an easily scannable visual interface

Page 16: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

The schedule list view provided a more accessible text interface

Page 17: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

The schedule allowed users to dig in and browse by sport

Page 18: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

or by day

Page 19: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

We also had Interactive medal tables. That allowed users to browser medals by country

Page 20: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

medal by sport

Page 21: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

And medals by athlete

Page 22: BBC Olympics: An accessibility case study

These pages were dynamically updated in real time using data from the Olympics Broadcasting Service.

Tuesday, 17 September 13

Page 23: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Other features included the interactive video player to watch live and on-demand video

Page 24: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

A results section, providing by a 3rd Party, that contained details of every heat of every event.

Page 25: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

And of course the sport news sections with content created by journalists.

This was an existing part of the website that we just added branding to.

Page 26: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Article pages

Page 27: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Video clips

Page 28: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Image galleries

Page 29: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Live event commentary

Page 30: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Lots of this was also available on mobile

Page 31: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

And all video and medals were available on connected TV

24 high definition live streams2500 hours of video coverage

Page 32: BBC Olympics: An accessibility case study

Tens of thousands of pages ...

Tuesday, 17 September 13

possibly hundreds....

Page 33: BBC Olympics: An accessibility case study

BBC Olympics About the Project

Usage and Stats

> 37 million UK browsers> 66% UK online adult population> 57m global browses> 111m video requests across all platforms

Tuesday, 17 September 13

We knew the website was going to be popular - but I don’t think anyone imagined it would be quite the success it was.

Page 34: BBC Olympics: An accessibility case study

Challenges

Tuesday, 17 September 13

Page 35: BBC Olympics: An accessibility case study

BBC Olympics Challenges

Developer challenges ...

Accessible to all> Size of project> Immovable deadline> 17 day event> Huge audience> High Profile> Real-time data> Up front design> Lots of javascript> Multiple teams> Mixed knowledge of accessibility on teams

Tuesday, 17 September 13

Huge amount of effort going into to making it available on many platforms.

On the desktop we wanted to make sure it was accessible to all - irrespective of people’s device or ability. First project I’ve worked on where this was made a clear priority right from the very top.

Australian olympics website had been sued in 2004 for being inaccessible.

Easier said than done.

Page 36: BBC Olympics: An accessibility case study

BBC Olympics Challenges

What is accessibility?

A range of capabilities> Visual> Auditory> Motor> Cognitive

Characteristics of accessibility> Perceivable> Operable> Understandable> Robust

Tuesday, 17 September 13

Web accessibility refers to the inclusive practice of making websites usable by people of all abilities and disabilities - irrespective of the device they are using

Page 37: BBC Olympics: An accessibility case study

Desktop and Tablet

Tuesday, 17 September 13

Page 38: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

The Development approach

> Build with accessibility in mind - from the start> Speak to specialists early> Training - screen readers, WAI-ARIA> Set up a support network and share best practices> Front-end developers create UI before integration> Brainstorm multiple solutions and seek feedback> Agile> Test thoroughly> Component library> Web Standards and Progressive Enhancement

Tuesday, 17 September 13

Screen reader training with AbilityNetAria, javascript and HTML5 training with The Paciello Group - based around upcoming componentsSupport forum for a month - to answer questions

Work with milestones: test early, test often

Page 39: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

One of the first things we did when was analyse the designs looking for common styles and patterns that could be abstracted out into reusable code.

This helps you build things faster.

Also helps a consistency of implementation which is better for users

Page 40: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

The other thing we did was build each component in such a way that it could be dropped into any page.Much quicker to build a site from reusable components. Having a library also promotes reuse and consistency of implementation.

This started as just a static library (HTML and CSS) - but evolved into components that used mock data. This meant we could get components to load different variation of expected data so we could confirm that they worked for all expected scenarios.

This helped hugely with testing. Could point testers to a page and get them to confirm that they worked as expected. Also meant that we could ask Henny to test things as soon as they were built - rather than having to wait for the components to appear on web pages that were being driven by test data.

Page 41: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

> HTML5 doctype> Lang attribute> Skips links > Unique title> Unique h1> WAI-ARIA landmark roles

Page Templates

Tuesday, 17 September 13

Page 42: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Web standards and Progressive Enhancement

Content

HTML & WAI-ARIA

CSS

JavaScript & HTML

CSS for Javascript

WAI-ARIA for Javascript

Tuesday, 17 September 13

Progressive enhancement uses web technologies in a layered fashion that allows everyone to access the basic content and functionality of a web page

Page 43: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

> Add content in logical order> Alt text for images that need it> Captions for tables> Full text for abbreviations

Content

Content

HTML & WAI-ARIA

CSS

JavaScript & HTML

CSS for Javascript

WAI-ARIA for Javascript

Tuesday, 17 September 13

Page 44: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

> Use most appropriate elements > Add hierarchical heading structure> Add content images> Don’t duplicate links> Links make sense out of context> Code tables correctly> Code forms correctly> ARIA roles & attributes where useful> Validate

Core functionality available through links and forms

HTML

Content

HTML & WAI-ARIA

CSS

JavaScript & HTML

CSS for Javascript

WAI-ARIA for Javascript

Tuesday, 17 September 13

Semantically structured HTML

Page 45: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

> Implement non-js layout > Take care with display:none> Focus aswell as hover - no outline:0> Font size +2> Don’t use !important > Check Font size +2> Check for colour contrast> Check with images off> Check visual state is also in content

layer

CSS

Content

HTML & WAI-ARIA

CSS

JavaScript & HTML

CSS for Javascript

WAI-ARIA for Javascript

Tuesday, 17 September 13

Take care to not implement barriers with CSS

Page 46: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

> Feature detection> Valid JS generated HTML> Update state labels - open/close> Hijax - http before ajax> Update screenreader virtual buffer> Check keyboard access to all

content> Check no keyboard traps

JavaScript

Content

HTML & WAI-ARIA

CSS

JavaScript & HTML

CSS for Javascript

WAI-ARIA for Javascript

Tuesday, 17 September 13

Page 47: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

> Contextual CSS body=”js”> Prevent flicker as js loads

CSS for Javascript

Content

HTML & WAI-ARIA

CSS

JavaScript & HTML

CSS for Javascript

WAI-ARIA for Javascript

Tuesday, 17 September 13

Page 48: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

> Keep users informed (live regions)> Manage focus (tabindex 0 and -1)> Implement keyboard controls> Use appropriate WAI-ARIA

attributes - roles, states and properties

> Provide hidden instructions

WAI-ARIA for Javascript

Content

HTML & WAI-ARIA

CSS

JavaScript & HTML

CSS for Javascript

WAI-ARIA for Javascript

Tuesday, 17 September 13

Keep users informed - loading, new content

Treat aria as an enhancement - not widespread support or familiarity by users

Page 49: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Sometimes not possible to have a non-js version- schedule module- favourites tray

That’s fine - you need to be pragmatic!Follow as similar approach though - content in logical order, semantic and valid markup, avoid css gotchas, manage keyboard focus etc

Page 50: BBC Olympics: An accessibility case study

Tuesday, 17 September 13

Interactive Medal Tables* Built to work without javascript. * deliver something quickly. * real pages that you can bookmark and email * if there is an error it will still work* Logical Content order - go to any page without javascript and the content is in logical order.* Most appropriate markup - <th> for countries, caption and summary* Identify which content is selected in content layer as well as visual layer.* Alt for medal images* Visible active state for keyboard users* Keyboard short cuts* Inform users that content is loading* Users taken to loaded content* Use Browser API so back button still works

Page 51: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Issues we fixed...

Tuesday, 17 September 13

Page 52: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Fixed: Colour contrast

Tuesday, 17 September 13

Problem - Design/CSSFailed colour contrast test

Fix:Changed colours

Page 53: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Fixed: Over complicated markup

Tuesday, 17 September 13

PROBLEM: HTMLAural clutter - headings inside lists

FIX:Refactor HTML

Page 54: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Fixed: Broken navigation when resized

Tuesday, 17 September 13

Problem - Design/CSSFailed colour contrast test

Fix:Changed colours

Page 55: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Fixed: Favourite Button

Tuesday, 17 September 13

Problem: HTML generated by JSspan used instead of div - can’t receive keyboard focus

Fix:Feedback issue - got them to use a button

Page 56: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Fixed: Keyboard inaccessible video clips

Tuesday, 17 September 13

Problem: JS generating span instead of linkUnable to play video with keyboard as span used instead of button

Fix:Added in a link to control video

Page 57: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Fixed: Keyboard trap

Tuesday, 17 September 13

Problem: JSInfinite scroll resulted in keyboard trap

Page 58: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Issues that got released...

Tuesday, 17 September 13

Page 59: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Compromise: Colour only medals

Tuesday, 17 September 13

Problem: medal communicated by colour onlyIf colour blind won’t know what medal

Why not fixed:Design didn’t want to change

Page 60: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Compromise: Country page content order

Tuesday, 17 September 13

Problem: Design/logical content orderDesign meant not in logical order

Fix:Designers didn’t want to change design

Page 61: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Compromise: Indistinguishable Links

Tuesday, 17 September 13

Problem: Design/CSSCan’t see links until you roll over them

Why not fixed:Changed by another team due to request from design. Ran out of time to chase up.

Page 62: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Compromise: Info graphics

<img src=”rivals.jpg” alt=”Bolt graphic” />

Tuesday, 17 September 13

Problem: adequate alternate text not providedLots of information in graphic - editorial didn’t include adequate descriptive alt text

Page 63: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Compromise: Auto Suggest not read out

Tuesday, 17 September 13

Problem: JavascriptSuggested athletes not read out

Why not fixed:Not part of stable release of jquery ui. Ran out of time.

Page 64: BBC Olympics: An accessibility case study

BBC Olympics Desktop and Tablet

Compromise: Auto refresh

Tuesday, 17 September 13

Problem: JSCan’t turn off auto-refreshCompletely unusable by screen reader userUse of non-semantic markup

Why not fixed:Built by an3rd Party. Fed back issues but they didn’t have time/inclination to fix

Page 65: BBC Olympics: An accessibility case study

Lessons Learnt

Tuesday, 17 September 13

Page 66: BBC Olympics: An accessibility case study

BBC Olympics Access services

Lessons Learnt

> Team effort - every role has a responsibility> Easy to introduce issues at all levels> Collaborate> Seek help from specialists> Progressive Enhancement is good> Test early and often> 100% accessible not realistic - need to prioritise> Accessibility does not have to compromise design

Tuesday, 17 September 13

You don’t need to compromise design for accessibility

Page 67: BBC Olympics: An accessibility case study

Alistair Dugginhttp://alistairduggin.co.uk/@dugboticus

Tuesday, 17 September 13

Page 68: BBC Olympics: An accessibility case study

Tuesday, 17 September 13