SlideShare a Scribd company logo
ARIA
SydJS lightning talk, 2013.03.20
 Ben Buchanan / @200okpublic
    weblog.200ok.com.au
"The power of the Web is in its universality. Access
           by everyone regardless of
        disability is an essential aspect."
                  - Tim Berners-Lee, 1997
This is relevant to your interests.
ARIA
●
    Accessible Rich Internet Applications
●
    Enhances the DOM
●
    Describes richer interactions
Reasons to use it
●
    Obviously, because a11y is good
●
    But also it's freakin useful
State reinvented over and over and over
class="disabled"
class="enabled"
class="on"
class="off"
class="ticked"
class="checked"
class="focus"
class="active"
class="hidden"
...and over
data-my-awesome-namespace="disabled"
data-my-awesome-namespace="enabled"
data-my-awesome-namespace="on"
data-my-awesome-namespace="off"
data-my-awesome-namespace="ticked"
data-my-awesome-namespace="checked"
data-my-awesome-namespace="focus"
data-my-awesome-namespace="active"
data-my-awesome-namespace="hidden"
"What meaningful properties does
       this object have at this time?"
- http://www.w3.org/TR/2010/WD-wai-aria-primer-20100916/#properties
Description requires definition
Link elements
Bad:
<a>Trigger</a>
<div class="tooltip" id="foo">
Not announced</div>
Link elements
Good:
<a aria-describedby="foo">Trigger</a>
<div role="tooltip" id="foo">
Announced</div>
Side by side
Bad:
<a>Trigger</a>
<div class="tooltip" id="foo">
Not announced</div>


Good:
<a aria-describedby="foo">Trigger</a>
<div role="tooltip" id="foo">
Announced</div>
Don't overdo it...
●
    Use core HTML where valid
    ●   <input type="checkbox" disabled />
●
    ARIA fills in the gaps
    ●   <span role="checkbox"
              aria-checked="false"
              tabindex="0"
              id="chk1"></span>
Separate your functional CSS
DOM:
aria-hidden="true"


CSS:
[aria-hidden="true"] { display: none; }
Support
Careful! Browsers may rock at ARIA,
     but suck at assistive tech.
                 eg.
       Firefox + NVDA = good
       Chrome + NVDA = bad
To summarise:
Rejoice! ARIA means Javascript
      no longer kills kittens!
More info
●
    "Using WAI-ARIA in HTML"
    https://dvcs.w3.org/hg/aria-unofficial/raw-file/tip/index.html
●
    "WAI-ARIA 1.0 Authoring Practices"
    http://www.w3.org/WAI/PF/aria-practices/
●
    ARIA on MDN
    https://developer.mozilla.org/en-US/docs/Accessibility/ARIA
●
    ARIA posts on TPG blog
    http://blog.paciellogroup.com/category/wai-aria/

More Related Content

Viewers also liked

Jornadas do Conhecimento - Arquitetura de Sites 14/11/2007 - Seprorj
Jornadas do Conhecimento - Arquitetura de Sites 14/11/2007 - SeprorjJornadas do Conhecimento - Arquitetura de Sites 14/11/2007 - Seprorj
Jornadas do Conhecimento - Arquitetura de Sites 14/11/2007 - Seprorj
Vanessa Oliveira
 
Ebsc Ohost Power Point
Ebsc Ohost Power PointEbsc Ohost Power Point
Ebsc Ohost Power Point
Jill Perfect
 
Global Action
Global ActionGlobal Action
Global Action
Jill Perfect
 
ARIA: beyond accessibility
ARIA: beyond accessibilityARIA: beyond accessibility
ARIA: beyond accessibility
Ben Buchanan
 
MBA (Managing by Appreciation) Inventory Results - 2014
MBA (Managing by Appreciation) Inventory Results - 2014MBA (Managing by Appreciation) Inventory Results - 2014
MBA (Managing by Appreciation) Inventory Results - 2014
Maria Elena Duron
 
Max Vest
Max VestMax Vest
Max Vest
Vestige25
 
Canyon Leasing Client Presentation
Canyon Leasing Client PresentationCanyon Leasing Client Presentation
Canyon Leasing Client Presentation
aconway76
 
Diapositivas Contaminacion Ambiental
Diapositivas Contaminacion AmbientalDiapositivas Contaminacion Ambiental
Diapositivas Contaminacion Ambiental
janety223
 

Viewers also liked (8)

Jornadas do Conhecimento - Arquitetura de Sites 14/11/2007 - Seprorj
Jornadas do Conhecimento - Arquitetura de Sites 14/11/2007 - SeprorjJornadas do Conhecimento - Arquitetura de Sites 14/11/2007 - Seprorj
Jornadas do Conhecimento - Arquitetura de Sites 14/11/2007 - Seprorj
 
Ebsc Ohost Power Point
Ebsc Ohost Power PointEbsc Ohost Power Point
Ebsc Ohost Power Point
 
Global Action
Global ActionGlobal Action
Global Action
 
ARIA: beyond accessibility
ARIA: beyond accessibilityARIA: beyond accessibility
ARIA: beyond accessibility
 
MBA (Managing by Appreciation) Inventory Results - 2014
MBA (Managing by Appreciation) Inventory Results - 2014MBA (Managing by Appreciation) Inventory Results - 2014
MBA (Managing by Appreciation) Inventory Results - 2014
 
Max Vest
Max VestMax Vest
Max Vest
 
Canyon Leasing Client Presentation
Canyon Leasing Client PresentationCanyon Leasing Client Presentation
Canyon Leasing Client Presentation
 
Diapositivas Contaminacion Ambiental
Diapositivas Contaminacion AmbientalDiapositivas Contaminacion Ambiental
Diapositivas Contaminacion Ambiental
 

Similar to ARIA (SydJS lightning talk)

Abusing the Cloud for Fun and Profit
Abusing the Cloud for Fun and ProfitAbusing the Cloud for Fun and Profit
Abusing the Cloud for Fun and Profit
Alan Pinstein
 
Web Accessibility - We're All In This Together!
Web Accessibility - We're All In This Together!Web Accessibility - We're All In This Together!
Web Accessibility - We're All In This Together!
Andrew Ronksley
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
touchtitans
 
Making your Angular.js Application accessible
Making your Angular.js Application accessibleMaking your Angular.js Application accessible
Making your Angular.js Application accessible
Dirk Ginader
 
The Offspring of SEO and Semantic Web: SEO++
The Offspring of SEO  and Semantic Web: SEO++ The Offspring of SEO  and Semantic Web: SEO++
The Offspring of SEO and Semantic Web: SEO++
Jay Myers
 
Open and Accessible UI
Open and Accessible UIOpen and Accessible UI
Open and Accessible UI
Mark Meeker
 
Faster web pages
Faster web pagesFaster web pages
Faster web pages
David Rodenas
 
Dynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIADynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIA
Access iQ
 
Why favor Icinga over Nagios @ DebConf15
Why favor Icinga over Nagios @ DebConf15Why favor Icinga over Nagios @ DebConf15
Why favor Icinga over Nagios @ DebConf15
Icinga
 
Building Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with DrupalBuilding Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with Drupal
Four Kitchens
 
Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
Fwdays
 
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
 
Business of Front-end Web Development
Business of Front-end Web DevelopmentBusiness of Front-end Web Development
Business of Front-end Web Development
Rachel Andrew
 
Surviving Dev Frameworks 2019
Surviving Dev Frameworks 2019Surviving Dev Frameworks 2019
Surviving Dev Frameworks 2019
Kate Walser
 
ARIA Techniques for Accessible Web Forms
ARIA Techniques for Accessible Web FormsARIA Techniques for Accessible Web Forms
ARIA Techniques for Accessible Web Forms
Aidan Tierney
 
Bootstrap 3 training
Bootstrap 3 trainingBootstrap 3 training
Bootstrap 3 training
Vison Sunon
 
HTML5 & WAI ARIA for online banking
HTML5 & WAI ARIA for online bankingHTML5 & WAI ARIA for online banking
HTML5 & WAI ARIA for online banking
Adesis Netlife
 
Drupal South 2018 -  How to keep Drupal relevant in the Git-based and API-dri...
Drupal South 2018 -  How to keep Drupal relevant in the Git-based and API-dri...Drupal South 2018 -  How to keep Drupal relevant in the Git-based and API-dri...
Drupal South 2018 -  How to keep Drupal relevant in the Git-based and API-dri...
enzolutions
 
Microdata semantic-extend
Microdata semantic-extendMicrodata semantic-extend
Microdata semantic-extend
Seek Tan
 
Ignite Innovation: Turn Developers Loose on the Hybrid Cloud”
Ignite Innovation: Turn Developers Loose on the Hybrid Cloud”Ignite Innovation: Turn Developers Loose on the Hybrid Cloud”
Ignite Innovation: Turn Developers Loose on the Hybrid Cloud”
Rackspace
 

Similar to ARIA (SydJS lightning talk) (20)

Abusing the Cloud for Fun and Profit
Abusing the Cloud for Fun and ProfitAbusing the Cloud for Fun and Profit
Abusing the Cloud for Fun and Profit
 
Web Accessibility - We're All In This Together!
Web Accessibility - We're All In This Together!Web Accessibility - We're All In This Together!
Web Accessibility - We're All In This Together!
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
 
Making your Angular.js Application accessible
Making your Angular.js Application accessibleMaking your Angular.js Application accessible
Making your Angular.js Application accessible
 
The Offspring of SEO and Semantic Web: SEO++
The Offspring of SEO  and Semantic Web: SEO++ The Offspring of SEO  and Semantic Web: SEO++
The Offspring of SEO and Semantic Web: SEO++
 
Open and Accessible UI
Open and Accessible UIOpen and Accessible UI
Open and Accessible UI
 
Faster web pages
Faster web pagesFaster web pages
Faster web pages
 
Dynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIADynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIA
 
Why favor Icinga over Nagios @ DebConf15
Why favor Icinga over Nagios @ DebConf15Why favor Icinga over Nagios @ DebConf15
Why favor Icinga over Nagios @ DebConf15
 
Building Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with DrupalBuilding Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with Drupal
 
Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
 
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
 
Business of Front-end Web Development
Business of Front-end Web DevelopmentBusiness of Front-end Web Development
Business of Front-end Web Development
 
Surviving Dev Frameworks 2019
Surviving Dev Frameworks 2019Surviving Dev Frameworks 2019
Surviving Dev Frameworks 2019
 
ARIA Techniques for Accessible Web Forms
ARIA Techniques for Accessible Web FormsARIA Techniques for Accessible Web Forms
ARIA Techniques for Accessible Web Forms
 
Bootstrap 3 training
Bootstrap 3 trainingBootstrap 3 training
Bootstrap 3 training
 
HTML5 & WAI ARIA for online banking
HTML5 & WAI ARIA for online bankingHTML5 & WAI ARIA for online banking
HTML5 & WAI ARIA for online banking
 
Drupal South 2018 -  How to keep Drupal relevant in the Git-based and API-dri...
Drupal South 2018 -  How to keep Drupal relevant in the Git-based and API-dri...Drupal South 2018 -  How to keep Drupal relevant in the Git-based and API-dri...
Drupal South 2018 -  How to keep Drupal relevant in the Git-based and API-dri...
 
Microdata semantic-extend
Microdata semantic-extendMicrodata semantic-extend
Microdata semantic-extend
 
Ignite Innovation: Turn Developers Loose on the Hybrid Cloud”
Ignite Innovation: Turn Developers Loose on the Hybrid Cloud”Ignite Innovation: Turn Developers Loose on the Hybrid Cloud”
Ignite Innovation: Turn Developers Loose on the Hybrid Cloud”
 

Recently uploaded

Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 

Recently uploaded (20)

Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 

ARIA (SydJS lightning talk)

Editor's Notes

  1. You&apos;ve probably seen this quote before. It gets used a lot because it demonstrates the fact Tim Berners-Lee&apos;s vision for the web has always been one of inclusivity. Quote source: http://www.w3.org/Press/IPO-announce or http://www.w3.org/standards/webdesign/accessibility if you prefer.
  2. During a recent speaking tour, he said accessibility has come a very long way (when considered over a decade-long period – big picture). But he also warned that JS-heavy applications were a great risk to that progress. Image source: http://www.pocket-lint.com/news/46694/sir-tim-berners-lee-olympic-tweet TimBL paraphrased from a Q&amp;A session at UNSW, 2013.02.01
  3. As the people writing those JS-heavy applications, this is relevant to your interests... For a long time, accessibility was touted as a bluntly JS-on or JS-off dichotomy. That misled many people into thinking accessibility was too hard; or that if you wanted to do cool stuff you were excused from accessibility. That of course is bullshit. You can do all the JS ninja stuff you want and still make it accessible.
  4. The basics are still pretty easy: test the keyboard, check the colours, ensure there&apos;s alt text. It&apos;s the richer DOM work that is harder: updating the DOM, linking elements, elements behaving like other elements. The problem with screen readers they were built to meet a load once, render once paradigm; but DOM changes weren&apos;t picked up. ARIA describes the state of the DOM in ways assistive tech can read, basically bolting accessibility back on where it had fallen off.
  5. The cool thing though is you should also think about using ARIA purely because it&apos;s frickin useful.
  6. People reinvent state, over and over and over. Disabled, enabled, on, off, active, hidden...
  7. No matter how you&apos;re bunging this stuff into the DOM, you&apos;re still having to define and implement it all; and document it for the next person.
  8. What&apos;s interesting is all this information is the same information assistive technology needs. In order to describe rich interaction, ARIA had to define it .
  9. This gives us a standardised list of common interaction states, element attributes and roles... AND it makes that accessible to assistive technology.
  10. A quick example here is a tooltip. The second element is often generated from title text, but the title has to be supprssed to avoid double up. So once you turn it into a tooltip it&apos;s no longer available to assistive tech. There is no link between these two elements in the DOM, the DIV is commonly appened to BODY and floated.
  11. Simply by changing the class to a role; and using described-by, you can solve these problems. The elements are linked in the DOM and assistive tech knows that random DIV is actually tooltip (which is a defined widget type). I can vouch this works as I&apos;ve tested it, while creating a pull request that&apos;s been ignored for going on six months now... CAVEAT: presumes there is a role=&quot;application&quot; or &quot;document&quot; higher up the DOM.
  12. And just a quick side by side to make it easier to see how similar the code is. While ARIA can be a little verbose, it&apos;s quite readable.
  13. The ARIA spec itself is very clear on this: use ARIA when there is a gap that needs to be fixed. That includes gaps you&apos;ve put in yourself ;) Checkbox code from https://developer.mozilla.org/en-US/docs/Accessibility/ARIA/ARIA_Techniques/Using_the_checkbox_role
  14. What&apos;s interesting is once you start using ARIA states like this, you can separate the CSS that&apos;s not concerned with how things look. Many widgets have a small amount of functionality-related CSS; so you can attach that to the same attributes you&apos;re using for behaviour.
  15. Screenshot from http://caniuse.com/#feat=wai-aria
  16. Just be aware that not all combinations are equal. This is not cause to panic, just test with the right stuff. Webaim have a great guide for this: http://webaim.org/articles/screenreader_testing/
  17. You already define state and manipulate the DOM. Use ARIA to do it and make your stuff accessible!
  18. One little home truth about ARIA is the specs are really hard to read. Seek out these dev-friendly options instead of the raw specs!