SlideShare a Scribd company logo
Web
Accessibility –
We're All In
This Together!
ThoughtWorks Team
Meeting – January 2013
London, UK



Andrew Ronksley
Digital Accessibility Development Officer
Royal National Institute of Blind People
What's an “assistive technology”?

And does anyone in the room use any?

Sure, any specialist software / hardware
designed for disabled people counts, but
does anything else count as well?
Despite it being smashed beyond
belief, my mobile to me (and to
everyone) is an “assistive
technology”.

Without it, I can't call my mum
because human hearing doesn't
work over a range of 200 or so
miles.

I need the technology to “extend
my capabilities as a human”.

To that end, I see almost all
technologies as “assistive
technologies”.

So I normally just refer to
“technology” these days.
Simple steps to improving web accessibility...
Don't use fixed font sizes and colours...
                          Designers want it “my
                          way”. Let users take the
                          “highway” if they want.


                          Keep all styles in external
                          CSS (avoid inline styles).


                          Avoid “px” values for
                          font-size and line-heights
                          (Internet Explorer won't
                          resize them).


                          A style switcher is nice to
                          have but not an essential
                          feature.
Consistency is a virtue...

                   Aim for consistency across your
                   interface both in terms of locations
                   and shape / colours of items.


                   Give your design room to breathe
                   but avoid large amounts of white
                   space between related controls.
                   Pure white space is difficult to
                   traverse for screen magnification
                   users.


                   Consistency can really help
                   disabled users once they become
                   familiar with your site or
                   application.
Give your mouse the day off...
...test with the keyboard only.
Be kind. Be semantic.
                        Write great, descriptive HTML. Use
                        <title>, <h1-h6>, <ul><li>, <label
                        for=””>.


                        Alt attributes – describe the purpose
                        of the image. If it doesn't have a
                        purpose, use alt=”” or a css
                        background image instead.


                        Link text – every time you use “Click
                        here” something bad happens to my
                        niece's kitten.


                        If you have tabular data use table
                        markup! <th>, <td> and scope.


                        CSS – be careful with display: none.
                        Screen readers parse this and won't
                        always read content out (which may
                        be what you want). Use absolute
                        positioning off-screen if you want the
                        content available though.
Test it with real end users...
...make sure it's not a car crash!
JavaScript...doer of accessibility evil!
                       Sensationalist and not true! Like
                       any other web technology, it
                       comes down to how you use it.


                       To my knowledge, screen readers
                       don't parse JavaScript directly.


                       They rely on information given to
                       them from the browser via the
                       platform accessibility API for the
                       operating system in use.


                       Where JavaScript causes a
                       problem is when it manipulates
                       the DOM without a page reload
                       and is used to create custom
                       “widgets” that don't natively
                       exist in HTML.
How does WAI-ARIA help?
                      Despite being intrinsically
                      linked with JavaScript,
                      WAI-ARIA is actually a
                      “semantic plaster /
                      bandaid” for HTML (not
                      bacon flavoured
                      unfortunately!)


                      ARIA markup is just
                      additional attributes that
                      you can add to your HTML
                      document and manipulate
                      through your scripts.


                      It's super easy and
                      already comes “baked-in”
                      to a lot of popular
                      JavaScript UI libraries.
How does WAI-ARIA help?
                   ARIA allows you to specify what
                   the role of something is, e.g. if
                   you have a bunch of <div>
                   elements faking a menu, use
                   role=”menu” and
                   role=”menuitem” to “repair” it.


                   Using ARIA you can also mark
                   an element of a page as a “live
                   region” if it gets updated
                   dynamically through DOM
                   manipulation or the result of an
                   AJAX call.


                   Guess what? Most of this stuff
                   needs both browser and screen
                   reader support!
What's the deal with WAI-ARIA and HTML5?
                    HTML5 is incorporating elements of
                    ARIA. For example, there's a native
                    <menu> element which can be used
                    rather than <div> and role=”menu” and
                    <input type=”range”> can be used
                    instead of role=”slider”.


                    ARIA has support for more widgets than
                    HTML5 native elements though. For
                    example, tree views, modal dialogs and
                    live regions. It's not dead as a
                    specification yet.


                    The HTML5 specification has a number of
                    mapping tables that outline the
                    relationship between the two
                    specifications. They're definitely worth
                    checking out.


                    Finally, I don't need to tell you that
                    HTML5 depends on browser support as
                    well!
Thanks for listening! Any questions?
www.rnib.org.uk/wac

www.rnib.org.uk/professionals/softwareandtechnology

www.paciellogroup.com/blog/ (for the latest WAI-ARIA / HTML5
information)

www.linkedin.com/in/andrewronksley
Thanks to the following awesome Flickr users for letting me use their images:

http://www.flickr.com/photos/altogetherfool/3543142490/
http://www.flickr.com/photos/--sam--/4486809849/
http://www.flickr.com/photos/guydonges/2649517251/
http://www.flickr.com/photos/kenwilcox/3883031017/
http://www.flickr.com/photos/functoruser/2437807188/
http://www.flickr.com/photos/30998987@N03/5408763997/
http://www.flickr.com/photos/eamoncurry/3335785800/
http://www.flickr.com/photos/methodshop/6397366607/
http://www.flickr.com/photos/arnehendriks/3360303148/
http://www.flickr.com/photos/22290288@N03/5865026309/
http://www.flickr.com/photos/11513812@N02/1394620294/
http://www.flickr.com/photos/junit16/6036682072/
http://www.flickr.com/photos/wwworks/4759535950/

More Related Content

Similar to Web Accessibility - We're All In This Together!

WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
Patrick Lauke
 
Worry free web development
Worry free web developmentWorry free web development
Worry free web development
Estelle Weyl
 
Making JavaScript Accessible
Making JavaScript AccessibleMaking JavaScript Accessible
Making JavaScript Accessible
Dennis Lembree
 
How To Build An Accessible Web Application
How To Build An Accessible Web ApplicationHow To Build An Accessible Web Application
How To Build An Accessible Web Application
Dennis Lembree
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
Luciano Amodio
 
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Steven Faulkner
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
Patrick Lauke
 
From Flash to Canvas - a penchant for black holes
From Flash to Canvas - a penchant for black holesFrom Flash to Canvas - a penchant for black holes
From Flash to Canvas - a penchant for black holes
Patric Lanhed
 
Html 5 mobile - nitty gritty
Html 5 mobile - nitty grittyHtml 5 mobile - nitty gritty
Html 5 mobile - nitty gritty
Mario Noble
 
An Introduction to WAI-ARIA
An Introduction to WAI-ARIAAn Introduction to WAI-ARIA
An Introduction to WAI-ARIA
IWMW
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
Ashlimarie
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
Yan Shi
 
Web app and more
Web app and moreWeb app and more
Web app and more
faming su
 
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and compositionBuild 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
Windows Developer
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
Patrick Lauke
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
Patrick Lauke
 
Architecting RIAs with Silverlight
Architecting RIAs with SilverlightArchitecting RIAs with Silverlight
Architecting RIAs with Silverlight
Josh Holmes
 
Web Accessibility Gone Wild (Now Even MORE Wilder!)
Web Accessibility Gone Wild (Now Even MORE Wilder!)Web Accessibility Gone Wild (Now Even MORE Wilder!)
Web Accessibility Gone Wild (Now Even MORE Wilder!)
Jared Smith
 
jQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und ResponsivejQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und Responsive
Peter Rozek
 
Aria interview questions
Aria interview questionsAria interview questions
Aria interview questions
learnstraightsap
 

Similar to Web Accessibility - We're All In This Together! (20)

WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
 
Worry free web development
Worry free web developmentWorry free web development
Worry free web development
 
Making JavaScript Accessible
Making JavaScript AccessibleMaking JavaScript Accessible
Making JavaScript Accessible
 
How To Build An Accessible Web Application
How To Build An Accessible Web ApplicationHow To Build An Accessible Web Application
How To Build An Accessible Web Application
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
 
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
 
From Flash to Canvas - a penchant for black holes
From Flash to Canvas - a penchant for black holesFrom Flash to Canvas - a penchant for black holes
From Flash to Canvas - a penchant for black holes
 
Html 5 mobile - nitty gritty
Html 5 mobile - nitty grittyHtml 5 mobile - nitty gritty
Html 5 mobile - nitty gritty
 
An Introduction to WAI-ARIA
An Introduction to WAI-ARIAAn Introduction to WAI-ARIA
An Introduction to WAI-ARIA
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and compositionBuild 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
 
Architecting RIAs with Silverlight
Architecting RIAs with SilverlightArchitecting RIAs with Silverlight
Architecting RIAs with Silverlight
 
Web Accessibility Gone Wild (Now Even MORE Wilder!)
Web Accessibility Gone Wild (Now Even MORE Wilder!)Web Accessibility Gone Wild (Now Even MORE Wilder!)
Web Accessibility Gone Wild (Now Even MORE Wilder!)
 
jQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und ResponsivejQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und Responsive
 
Aria interview questions
Aria interview questionsAria interview questions
Aria interview questions
 

Recently uploaded

Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 

Recently uploaded (20)

Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 

Web Accessibility - We're All In This Together!

  • 1. Web Accessibility – We're All In This Together! ThoughtWorks Team Meeting – January 2013 London, UK Andrew Ronksley Digital Accessibility Development Officer Royal National Institute of Blind People
  • 2. What's an “assistive technology”? And does anyone in the room use any? Sure, any specialist software / hardware designed for disabled people counts, but does anything else count as well?
  • 3. Despite it being smashed beyond belief, my mobile to me (and to everyone) is an “assistive technology”. Without it, I can't call my mum because human hearing doesn't work over a range of 200 or so miles. I need the technology to “extend my capabilities as a human”. To that end, I see almost all technologies as “assistive technologies”. So I normally just refer to “technology” these days.
  • 4. Simple steps to improving web accessibility...
  • 5. Don't use fixed font sizes and colours... Designers want it “my way”. Let users take the “highway” if they want. Keep all styles in external CSS (avoid inline styles). Avoid “px” values for font-size and line-heights (Internet Explorer won't resize them). A style switcher is nice to have but not an essential feature.
  • 6. Consistency is a virtue... Aim for consistency across your interface both in terms of locations and shape / colours of items. Give your design room to breathe but avoid large amounts of white space between related controls. Pure white space is difficult to traverse for screen magnification users. Consistency can really help disabled users once they become familiar with your site or application.
  • 7. Give your mouse the day off... ...test with the keyboard only.
  • 8. Be kind. Be semantic. Write great, descriptive HTML. Use <title>, <h1-h6>, <ul><li>, <label for=””>. Alt attributes – describe the purpose of the image. If it doesn't have a purpose, use alt=”” or a css background image instead. Link text – every time you use “Click here” something bad happens to my niece's kitten. If you have tabular data use table markup! <th>, <td> and scope. CSS – be careful with display: none. Screen readers parse this and won't always read content out (which may be what you want). Use absolute positioning off-screen if you want the content available though.
  • 9. Test it with real end users... ...make sure it's not a car crash!
  • 10. JavaScript...doer of accessibility evil! Sensationalist and not true! Like any other web technology, it comes down to how you use it. To my knowledge, screen readers don't parse JavaScript directly. They rely on information given to them from the browser via the platform accessibility API for the operating system in use. Where JavaScript causes a problem is when it manipulates the DOM without a page reload and is used to create custom “widgets” that don't natively exist in HTML.
  • 11. How does WAI-ARIA help? Despite being intrinsically linked with JavaScript, WAI-ARIA is actually a “semantic plaster / bandaid” for HTML (not bacon flavoured unfortunately!) ARIA markup is just additional attributes that you can add to your HTML document and manipulate through your scripts. It's super easy and already comes “baked-in” to a lot of popular JavaScript UI libraries.
  • 12. How does WAI-ARIA help? ARIA allows you to specify what the role of something is, e.g. if you have a bunch of <div> elements faking a menu, use role=”menu” and role=”menuitem” to “repair” it. Using ARIA you can also mark an element of a page as a “live region” if it gets updated dynamically through DOM manipulation or the result of an AJAX call. Guess what? Most of this stuff needs both browser and screen reader support!
  • 13. What's the deal with WAI-ARIA and HTML5? HTML5 is incorporating elements of ARIA. For example, there's a native <menu> element which can be used rather than <div> and role=”menu” and <input type=”range”> can be used instead of role=”slider”. ARIA has support for more widgets than HTML5 native elements though. For example, tree views, modal dialogs and live regions. It's not dead as a specification yet. The HTML5 specification has a number of mapping tables that outline the relationship between the two specifications. They're definitely worth checking out. Finally, I don't need to tell you that HTML5 depends on browser support as well!
  • 14. Thanks for listening! Any questions?
  • 15. www.rnib.org.uk/wac www.rnib.org.uk/professionals/softwareandtechnology www.paciellogroup.com/blog/ (for the latest WAI-ARIA / HTML5 information) www.linkedin.com/in/andrewronksley
  • 16. Thanks to the following awesome Flickr users for letting me use their images: http://www.flickr.com/photos/altogetherfool/3543142490/ http://www.flickr.com/photos/--sam--/4486809849/ http://www.flickr.com/photos/guydonges/2649517251/ http://www.flickr.com/photos/kenwilcox/3883031017/ http://www.flickr.com/photos/functoruser/2437807188/ http://www.flickr.com/photos/30998987@N03/5408763997/ http://www.flickr.com/photos/eamoncurry/3335785800/ http://www.flickr.com/photos/methodshop/6397366607/ http://www.flickr.com/photos/arnehendriks/3360303148/ http://www.flickr.com/photos/22290288@N03/5865026309/ http://www.flickr.com/photos/11513812@N02/1394620294/ http://www.flickr.com/photos/junit16/6036682072/ http://www.flickr.com/photos/wwworks/4759535950/