SlideShare uma empresa Scribd logo
1 de 19
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/

Mais conteúdo relacionado

Destaque (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
 

Semelhante a ARIA (SydJS lightning talk)

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
 
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
 
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
 

Semelhante a 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”
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

ARIA (SydJS lightning talk)

Notas do Editor

  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!