Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Accessibility and how to get the most from your...

Edd S
September 26, 2015

Accessibility and how to get the most from your screenreader - EpicFEL

Building an interactive accessible website is often thought of as a black art. Covering some of the mistakes and pitfalls we made building GOV.UK, including building a single page "app", I will explain how you can check to see how accessible your websites are. You should come away armed with the ability to start checking and improving your sites today.

Edd S

September 26, 2015
Tweet

More Decks by Edd S

Other Decks in Technology

Transcript

  1. 1. Background ! 2. Developing a single page JavaScript thing

    on GOV.UK ! 3. General accessibility learnings @edds
  2. Up until a week ago I was a Senior Developer

    at the Government Digital Service @edds
  3. Benefits Includes tax credits, eligibility and appeals Births, deaths, marriages

    and care Parenting, civil partnerships, divorce and Lasting Power of Attorney Business and self-employed Tools and guidance for businesses Childcare and parenting Includes giving birth, fostering, adopting, benefits for children, childcare and schools Citizenship and living in the UK Voting, community participation, life in the UK, international projects Crime, justice and the law Legal processes, courts and the police Disabled people Includes carers, your rights, benefits and the Equality Act Driving and transport Includes vehicle tax, MOT and driving licences Education and learning Includes student loans, admissions and apprenticeships Employing people Includes pay, contracts and hiring Environment and countryside Includes flooding, recycling and wildlife Housing and local services Owning or renting and council services Money and tax Includes debt and Self Assessment Passports, travel and living abroad Includes renewing passports and travel advice by country Visas and immigration Visas, asylum and sponsorship Working, jobs and pensions Includes holidays and finding a job 24 Ministerial departments 331 Other agencies and public bodies The websites of all government departments and many other agencies and public bodies have been merged into GOV.UK. Here you can see all policies, announcements, publications, statistics and consultations. Find out how government services are performing and how satisfied users are. GOV.UK Welcome to GOV.UK The best place to find government services and information Simpler, clearer, faster Popular on GOV.UK Universal Jobmatch job search Renew vehicle tax Log in to student finance Book your theory test Employment and Support Allowance Search GOV.UK Browse @edds
  4. * By starting with HTML you’re forced to think about

    what you want to say to your users
  5. <div> <ul> <li class="active">Benefits</li> <li>Births, deaths, marriages and care</li> ...

    </ul> </div> <div> <h1>Benefits</h1> <ul> <li>Certificates, register offices</li> ... </ul> </div> @edds
  6. * Listening to your website lets you find out if

    it’s saying what you intended it to say
  7. <div> <h1>Benefits</h1> <ul> <li>Certificates, register offices</li> ... </ul> </div> <div>

    <ul> <li class="active">Benefits</li> <li>Births, deaths, marriages and care</li> ... </ul> </div> @edds
  8. “[ARIA] specifies how to increase the accessibility of web pages,

    in particular, dynamic content and user interface components developed with Ajax, HTML, JavaScript and related technologies” http://en.wikipedia.org/wiki/WAI-ARIA @edds
  9. @edds aria-atomic aria-busy (state) aria-controls aria-describedby aria-disabled (state) aria-dropeffect aria-flowto

    aria-grabbed (state) aria-haspopup aria-hidden (state) aria-invalid (state) aria-label aria-labelledby aria-live aria-owns aria-relevant
  10. @edds Voiceover Keyboard shortcuts: ! Voiceover on/off: [⌘] + [F5]

    Voiceover key (VO): [ctrl] + [⌥] Continue reading: ! [VO] + [a]!
  11. @edds Voiceover Keyboard shortcuts: ! Voiceover on/off: [⌘] + [F5]

    Voiceover key (VO): [ctrl] + [⌥] Continue reading: [VO] + [a] Previous/next item:! [VO] + [right] or [left]!
  12. @edds Voiceover Keyboard shortcuts: ! Voiceover on/off: [⌘] + [F5]

    Voiceover key (VO): [ctrl] + [⌥] Continue reading: [VO] + [a] Previous/next item: [VO] + [right] or [left] Enter region: ! ! [VO] + [⇧] + [down] ! Leave region: ! ! [VO] + [⇧] + [up] !
  13. 2.! ! Reading entire pages from start to finish often

    isn’t how people use screen readers @edds
  14. @edds Voiceover Keyboard shortcuts: ! Voiceover on/off: [⌘] + [F5]

    Voiceover key (VO): [ctrl] + [⌥] Continue reading: [VO] + [a] Previous/next item: [VO] + [right] or [left] Enter region: [VO] + [⇧] + [down] Leave region: [VO] + [⇧] + [up] Rotor window:!! [VO] + [u]
  15. Departments Worldwide How government works Get involved Policies Publications Consultations

    Statistics Announcements GOV.UK Guidance Pet cemeteries: where you can build them and how to register From: Animal and Plant Health Agency and Department for Environment, Food & Rural Affairs First published: 5 September 2014 Last updated: 13 October 2014 , see all updates Part of: Guidance for the animal by-product industry, Protecting animal health and preventing disease, including in trade, Food and farming and + others Applies to: England, Scotland and Wales The animal carcasses you bury at a pet cemetery are animal by-products (ABPs). Find out about the different categories of ABP. Building your pet cemetery Where you can build a pet cemetery, the animals you can bury there, how it must be built and how to register. Contents Building your pet cemetery Where you can build a pet cemetery How your pet cemetery must be built Search @edds
  16. *

  17. 3.! ! Some ARIA properties need to exist at page

    load to be picked up by Accessibility APIs @edds
  18. When attempting to recreate native elements it’s easy to forget

    to add accessibility hooks, like using space bar to click buttons. @edds
  19. <ul> <li> <label for=“name”>Your name</label> <input id="name" name="name"> </li> <li>

    <label for=“email”>Your email</label> <input id="email" name="email"> </li> </ul> @edds
  20. @edds ! ! <label for=“name”>Your name</label> <input id="name" name="name"> !

    ! <label for=“email”>Your email</label> <input id="email" name="email"> !
  21. * Start with HTML as! it forces you to think

    about what you want to say to your users
  22. * Listen to your website to see if your message

    is communicated to your users