SlideShare une entreprise Scribd logo
1  sur  30
WAI-ARIA Live Regions:
eBuddy IM as a Case Example
          Peter Thiessen (eBuddy)
  Stephen Hockema (University of Toronto)
Goals

1. introduce live regions and their importance


2. propose a few techniques for handling
   floods of updates
W4A 2007: Reprise
Previously at the W4A Charles Chen and I presented
“AJAX Live Regions: Chat as a case example”

•   introduced:

    •   live regions

    •   limitations (causality, grouping updates, abstractions)

    •   channels

•   demoed Fire Vox announcing updates from ReefChat
Importance of WAI-ARIA
     Live Regions
Rich Internet Applications (RIA) hack HTML4 to
create desktop like User Interfaces (UI)

•   dynamic updates not accessible

•   live regions provide meaningful markup for AT

•   W3C specification = standardized cross browser
    and device (all the major browsers and screen readers)
Live Regions
                                    <div aria-live=“polite”>
                                            update(s) here
                                    </div>

                                    <div aria-live=“assertive”>
                                            higher priority update(s) here
                                    </div>

http://www.w3.org/TR/wai-aria
W3C WAI-ARIA 1.0 specification itself - very detailed.
http://dev.opera.com/articles/view/introduction-to-wai-aria
A most excellent WAI-ARIA 1.0 intro for newbs by: Gez Lemon

http://www.w3.org/TR/wai-aria-practices
Excellent for developers new to ARIA
Are Live Regions
  Production Worthy?
• a few large scale RIAs use live regions
• ARIA HTML attributes are harmless -
  won’t break you application
• more wide scale testing and use cases
  wouldn’t hurt
What would make a good live
     region use case?


• lots! of users
• wide variety of platforms and devices
• lots of dynamic updates and complex user
  interactions
eBuddy IM

             • 1 billion+ users around the world
             • Web, Mobile, Console, ...
             • Chat based = lots of updates


http://www.ebuddy.com
eBuddy Instant Messenger Website for Web and Mobile
eBuddy + live regions
     Follow W3C recommendation of tacking ARIA attributes into
     existing UI to expose dynamic updates. eBuddy IM had 3 main
     dynamic regions:

     1. <div id="container‐tabs" aria‐live=”polite”> …

     2. <ol  id="container‐contacts" aria-live=“polite”> …

     3. <div class=“container-chat-area” role=“log”>…




Note: additional ARIA markup was removed for simplicity.
eBuddy + live regions
Tab list live region:
<div id="container‐tabs" aria‐live=”polite”> …

Contact list live region:
<ol  id="container‐contacts" aria-live=“polite”> …
eBuddy + live regions
Chat session live region:
<div class=“container-chat-area” role=“log”>…
Demo
              Typical Case
10 contacts and 10 messages in about 1 minute
Typical Case:
   Live Regions Work

• effectively exposes DOM updates to AT
• effectively synchronizes with UI
                               (almost)


• appears very production worthy
• another use case coming soon: eBuddy IM
Demo
      Edge Case Live Regions Usage
183 contacts and 20 I/O messages in about 2 minutes
Edge Case:
      Live Regions Fail
• hard to focus: unrelated updates force user
  to multi task
• easily overwhelmed: flood of updates
  causes a user to fall behind
• miss timely updates: could result in a user
  not participating
Visually: lots
of Updates
Another Visual Example
1) Limit UI Visibility
Since AT rarely announce hidden content - minimize
the visibility of UI elements:

•   (+) Simple solution to implement

•   (+) Follow W3C recommendation

•   (-) Could be very limiting in terms of UI creativity
2) Use Assertive Setting
Live regions have a lower priority “polite” and
higher “assertive”:
• (+) Could bump priority updates up in the
  queue (a chat message for example)
• (+) Follow W3C recommendation
• (-) Does not solve grouping issue - increases
  problem
3) Channels
                               (W4A 2007: Reprise)



       Why have only one channel? More channel mappings
       could improve information processing:

       For example:
       -map contact list updates to a Screen Reader channel
       -map chat messages to a braille terminal


*Note: experimental solution
4) Tally Queue (TQ)
      Summary:
      Capture all updates,create logical groupings, and
      announce the active queue updates but only
      announce the tally (sum) and label of inactive queues.

      TQ Elements:
       -one “invisible” polite live region where updates are
       announced (HTML/CSS)
       -(N) tally queue datastore and label (JavaScript)
       -code to manage tally queue updates (JavaScript)


*Note: experimental solution
Same Example but With a
   Tally Queue: Part 1
Same Example but With a
   Tally Queue: Part 2
TQ Pseudo Code
Left as an exercise for the reader:
//Listen for Updates
attach an event listener to each dynamic region
       on event publish the update
subscribe to event updates
       on an update, determine the related tally queue to send update

//Active Tally Queue
Announce tally queue label on becoming active
for each stored update in the tally queue (FILO)
       send update to live region area to be announced

//Inactive Tally Queue(s)
for all updates
        Announce sum of related tally queue and label
TQ HTML and CSS
Left as an exercise for the reader:
//html
<div id="tally-container" aria-live="polite" aria-relevant=“text”>
   <div id="tally-meta” aria-atomic=“true”>
      <div id="tally-count"></div>
      <div id="tally-label"></div>
   </div>
   <div id="tally-message"></div>
</div>

//css to hide tally queue visually but not from AT (WCAG2 technique)
#tally-container {
    height:1px; width:1px; position:absolute; overflow:hidden; top: -10px;
}
TQ Pros and Cons
      •   (+) Improve focus and reduce disorientation

      •   (+) Solves the invisible UI updates issue

      •   (+) Potential for features to help user keep up (pause/
          play, navigable history, and searchable history)


      •   (-) Goes against W3C recommendation

      •   (-) A massive N of updates could still flood the user



TQ in more detail soon: temporarily on overscore.com and
soon after on wiki.codetalks.org
Take Away

              •     Live regions are a key part of Web2 accessibility (all
                    the technology is in place)


              •     Live regions are probably production worthy (more
                    use cases on the way)


              •     Start thinking about handling floods of updates (two
                    possible techniques: Channels, Tally Queues)




Related paper from PARC on tweet verbosity: Bernstein, M.; Kairam, S.; Suh, B.;
Hong, L.; Chi, E. H. A torrent of tweets: managing information overload in online social streams.
CHI 2010 Workshop on Microblogging.; 2010 April 11; Atlanta, GA.
Resources from Slides
•   eBuddy Instant Messenger: http://www.ebuddy.com
•   W3C WAI-ARIA Live Region References:
    • http://www.w3.org/TR/wai-aria
    • http://www.w3.org/TR/wai-aria-primer
    • http://www.w3.org/TR/wai-aria-practices

•   Community ARIA Reference: http://wiki.codetalks.org

•   ARIA introduction: http://dev.opera.com/articles/view/introduction-to-wai-aria

•   Previous W4A Paper:            Thiessen, Peter, Chen, Charles. Ajax Live Regions: Chat as a Case Example. Proceedings of
    the 2007 international cross-disciplinary workshop on Web accessibility (W4A), 2007.

•   (XEROX) PARC Research paper on tweet verbosity: Bernstein, M.; Kairam, S.; Suh, B.; Hong, L.; Chi, E.
    H. A torrent of tweets: managing information overload in online social streams. CHI 2010 Workshop on Microblogging.;
    2010 April 11; Atlanta, GA.
Questions?
                    Live Region Issue                                          Possible Solution
         Update Grouping: no method to group updates in
                                                                     Add a live region tag to assign group labels.
         ARIA - must use client side logic.

         Prioritization: The assertive setting has few uses and      Either add more meaningful prioritization or remove
         is very limited for prioritization queuing. No setting to   assertive as well.
         alter natural order of updates.
         Obsolete Items: Not announced and sometimes it is           Add a toggle to enable/disable announcing obsolete
         desirable to announce obsolete items removed from the       items
         DOM.
         Hidden Updates: UI updates not visible on the               Add a toggle to enable/disable announcing invisible
         screen are not announced when brought into focus.           updates brought to the for ground

         Causality: No setting to determine if an update was a       Add a toggle to enable/disable announcing distinction
         user driven or client (system) driven update.               between user and client updates.



Tell us what you would like eBuddy IM to be/do:
pthiessen@ebuddy.com
eBuddy is hiring
www.ebuddy.com/jobs.php

Contenu connexe

Similaire à W4A10 - WAI-ARIA Live Regions: eBuddy IM as a Case Example

Making RIAs Accessible - Spring Break 2008
Making RIAs Accessible - Spring Break 2008Making RIAs Accessible - Spring Break 2008
Making RIAs Accessible - Spring Break 2008Andrea Hill
 
Hortonworks Technical Workshop: What's New in HDP 2.3
Hortonworks Technical Workshop: What's New in HDP 2.3Hortonworks Technical Workshop: What's New in HDP 2.3
Hortonworks Technical Workshop: What's New in HDP 2.3Hortonworks
 
01 web 2.0 - more than a pretty face for soa
01   web 2.0 - more than a pretty face for soa01   web 2.0 - more than a pretty face for soa
01 web 2.0 - more than a pretty face for soaTechnology Transfer
 
VASmalltalk, Today and Tomorrow
VASmalltalk, Today and TomorrowVASmalltalk, Today and Tomorrow
VASmalltalk, Today and TomorrowESUG
 
Win j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevWin j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevMihail Mateev
 
Open web device as the reference feature phone
Open web device as the reference feature phoneOpen web device as the reference feature phone
Open web device as the reference feature phoneMiguel Schneider
 
Drupal Europe 2018: Hackers automate but the drupal community still downloads...
Drupal Europe 2018: Hackers automate but the drupal community still downloads...Drupal Europe 2018: Hackers automate but the drupal community still downloads...
Drupal Europe 2018: Hackers automate but the drupal community still downloads...hernanibf
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to MicroservicesAd van der Veer
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014Victor Pascual Ávila
 
WinOps meetup April 2016 DevOps lessons from Microsoft \\Build\
WinOps meetup April 2016   DevOps lessons from Microsoft \\Build\WinOps meetup April 2016   DevOps lessons from Microsoft \\Build\
WinOps meetup April 2016 DevOps lessons from Microsoft \\Build\DevOpsGroup
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and DirectionsCollabNet
 
InduSoft Web Studio 8.0 + SP1 + Patch One Review
InduSoft Web Studio 8.0 + SP1 + Patch One ReviewInduSoft Web Studio 8.0 + SP1 + Patch One Review
InduSoft Web Studio 8.0 + SP1 + Patch One ReviewAVEVA
 
System Development Life Cycle
System Development Life CycleSystem Development Life Cycle
System Development Life Cyclesourav verma
 
Web 2.0: Behind The Hype Panel
Web 2.0: Behind The Hype PanelWeb 2.0: Behind The Hype Panel
Web 2.0: Behind The Hype Panellisbk
 
Denver ACE October 21st 2020
Denver ACE October 21st 2020Denver ACE October 21st 2020
Denver ACE October 21st 2020denveraug
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013Jeff Haynie
 
C Cure Users Group Presentation Final 4
C Cure Users Group Presentation Final 4C Cure Users Group Presentation Final 4
C Cure Users Group Presentation Final 4halgig
 
Technology standard ci_platforms
Technology standard ci_platformsTechnology standard ci_platforms
Technology standard ci_platformssuleymanissiz
 

Similaire à W4A10 - WAI-ARIA Live Regions: eBuddy IM as a Case Example (20)

Making RIAs Accessible - Spring Break 2008
Making RIAs Accessible - Spring Break 2008Making RIAs Accessible - Spring Break 2008
Making RIAs Accessible - Spring Break 2008
 
Hortonworks Technical Workshop: What's New in HDP 2.3
Hortonworks Technical Workshop: What's New in HDP 2.3Hortonworks Technical Workshop: What's New in HDP 2.3
Hortonworks Technical Workshop: What's New in HDP 2.3
 
Html5 aria-css-ibm-csun-2016
Html5 aria-css-ibm-csun-2016Html5 aria-css-ibm-csun-2016
Html5 aria-css-ibm-csun-2016
 
01 web 2.0 - more than a pretty face for soa
01   web 2.0 - more than a pretty face for soa01   web 2.0 - more than a pretty face for soa
01 web 2.0 - more than a pretty face for soa
 
VASmalltalk, Today and Tomorrow
VASmalltalk, Today and TomorrowVASmalltalk, Today and Tomorrow
VASmalltalk, Today and Tomorrow
 
Win j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevWin j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateev
 
Open web device as the reference feature phone
Open web device as the reference feature phoneOpen web device as the reference feature phone
Open web device as the reference feature phone
 
Drupal Europe 2018: Hackers automate but the drupal community still downloads...
Drupal Europe 2018: Hackers automate but the drupal community still downloads...Drupal Europe 2018: Hackers automate but the drupal community still downloads...
Drupal Europe 2018: Hackers automate but the drupal community still downloads...
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014
 
WinOps meetup April 2016 DevOps lessons from Microsoft \\Build\
WinOps meetup April 2016   DevOps lessons from Microsoft \\Build\WinOps meetup April 2016   DevOps lessons from Microsoft \\Build\
WinOps meetup April 2016 DevOps lessons from Microsoft \\Build\
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions
 
InduSoft Web Studio 8.0 + SP1 + Patch One Review
InduSoft Web Studio 8.0 + SP1 + Patch One ReviewInduSoft Web Studio 8.0 + SP1 + Patch One Review
InduSoft Web Studio 8.0 + SP1 + Patch One Review
 
System Development Life Cycle
System Development Life CycleSystem Development Life Cycle
System Development Life Cycle
 
Web 2.0: Behind The Hype Panel
Web 2.0: Behind The Hype PanelWeb 2.0: Behind The Hype Panel
Web 2.0: Behind The Hype Panel
 
Denver ACE October 21st 2020
Denver ACE October 21st 2020Denver ACE October 21st 2020
Denver ACE October 21st 2020
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013
 
C Cure Users Group Presentation Final 4
C Cure Users Group Presentation Final 4C Cure Users Group Presentation Final 4
C Cure Users Group Presentation Final 4
 
Technology standard ci_platforms
Technology standard ci_platformsTechnology standard ci_platforms
Technology standard ci_platforms
 

Dernier

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 

Dernier (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

W4A10 - WAI-ARIA Live Regions: eBuddy IM as a Case Example

  • 1. WAI-ARIA Live Regions: eBuddy IM as a Case Example Peter Thiessen (eBuddy) Stephen Hockema (University of Toronto)
  • 2. Goals 1. introduce live regions and their importance 2. propose a few techniques for handling floods of updates
  • 3. W4A 2007: Reprise Previously at the W4A Charles Chen and I presented “AJAX Live Regions: Chat as a case example” • introduced: • live regions • limitations (causality, grouping updates, abstractions) • channels • demoed Fire Vox announcing updates from ReefChat
  • 4. Importance of WAI-ARIA Live Regions Rich Internet Applications (RIA) hack HTML4 to create desktop like User Interfaces (UI) • dynamic updates not accessible • live regions provide meaningful markup for AT • W3C specification = standardized cross browser and device (all the major browsers and screen readers)
  • 5. Live Regions <div aria-live=“polite”> update(s) here </div> <div aria-live=“assertive”> higher priority update(s) here </div> http://www.w3.org/TR/wai-aria W3C WAI-ARIA 1.0 specification itself - very detailed. http://dev.opera.com/articles/view/introduction-to-wai-aria A most excellent WAI-ARIA 1.0 intro for newbs by: Gez Lemon http://www.w3.org/TR/wai-aria-practices Excellent for developers new to ARIA
  • 6. Are Live Regions Production Worthy? • a few large scale RIAs use live regions • ARIA HTML attributes are harmless - won’t break you application • more wide scale testing and use cases wouldn’t hurt
  • 7. What would make a good live region use case? • lots! of users • wide variety of platforms and devices • lots of dynamic updates and complex user interactions
  • 8. eBuddy IM • 1 billion+ users around the world • Web, Mobile, Console, ... • Chat based = lots of updates http://www.ebuddy.com eBuddy Instant Messenger Website for Web and Mobile
  • 9. eBuddy + live regions Follow W3C recommendation of tacking ARIA attributes into existing UI to expose dynamic updates. eBuddy IM had 3 main dynamic regions: 1. <div id="container‐tabs" aria‐live=”polite”> … 2. <ol  id="container‐contacts" aria-live=“polite”> … 3. <div class=“container-chat-area” role=“log”>… Note: additional ARIA markup was removed for simplicity.
  • 10. eBuddy + live regions Tab list live region: <div id="container‐tabs" aria‐live=”polite”> … Contact list live region: <ol  id="container‐contacts" aria-live=“polite”> …
  • 11. eBuddy + live regions Chat session live region: <div class=“container-chat-area” role=“log”>…
  • 12. Demo Typical Case 10 contacts and 10 messages in about 1 minute
  • 13. Typical Case: Live Regions Work • effectively exposes DOM updates to AT • effectively synchronizes with UI (almost) • appears very production worthy • another use case coming soon: eBuddy IM
  • 14. Demo Edge Case Live Regions Usage 183 contacts and 20 I/O messages in about 2 minutes
  • 15. Edge Case: Live Regions Fail • hard to focus: unrelated updates force user to multi task • easily overwhelmed: flood of updates causes a user to fall behind • miss timely updates: could result in a user not participating
  • 18. 1) Limit UI Visibility Since AT rarely announce hidden content - minimize the visibility of UI elements: • (+) Simple solution to implement • (+) Follow W3C recommendation • (-) Could be very limiting in terms of UI creativity
  • 19. 2) Use Assertive Setting Live regions have a lower priority “polite” and higher “assertive”: • (+) Could bump priority updates up in the queue (a chat message for example) • (+) Follow W3C recommendation • (-) Does not solve grouping issue - increases problem
  • 20. 3) Channels (W4A 2007: Reprise) Why have only one channel? More channel mappings could improve information processing: For example: -map contact list updates to a Screen Reader channel -map chat messages to a braille terminal *Note: experimental solution
  • 21. 4) Tally Queue (TQ) Summary: Capture all updates,create logical groupings, and announce the active queue updates but only announce the tally (sum) and label of inactive queues. TQ Elements: -one “invisible” polite live region where updates are announced (HTML/CSS) -(N) tally queue datastore and label (JavaScript) -code to manage tally queue updates (JavaScript) *Note: experimental solution
  • 22. Same Example but With a Tally Queue: Part 1
  • 23. Same Example but With a Tally Queue: Part 2
  • 24. TQ Pseudo Code Left as an exercise for the reader: //Listen for Updates attach an event listener to each dynamic region on event publish the update subscribe to event updates on an update, determine the related tally queue to send update //Active Tally Queue Announce tally queue label on becoming active for each stored update in the tally queue (FILO) send update to live region area to be announced //Inactive Tally Queue(s) for all updates Announce sum of related tally queue and label
  • 25. TQ HTML and CSS Left as an exercise for the reader: //html <div id="tally-container" aria-live="polite" aria-relevant=“text”> <div id="tally-meta” aria-atomic=“true”> <div id="tally-count"></div> <div id="tally-label"></div> </div> <div id="tally-message"></div> </div> //css to hide tally queue visually but not from AT (WCAG2 technique) #tally-container { height:1px; width:1px; position:absolute; overflow:hidden; top: -10px; }
  • 26. TQ Pros and Cons • (+) Improve focus and reduce disorientation • (+) Solves the invisible UI updates issue • (+) Potential for features to help user keep up (pause/ play, navigable history, and searchable history) • (-) Goes against W3C recommendation • (-) A massive N of updates could still flood the user TQ in more detail soon: temporarily on overscore.com and soon after on wiki.codetalks.org
  • 27. Take Away • Live regions are a key part of Web2 accessibility (all the technology is in place) • Live regions are probably production worthy (more use cases on the way) • Start thinking about handling floods of updates (two possible techniques: Channels, Tally Queues) Related paper from PARC on tweet verbosity: Bernstein, M.; Kairam, S.; Suh, B.; Hong, L.; Chi, E. H. A torrent of tweets: managing information overload in online social streams. CHI 2010 Workshop on Microblogging.; 2010 April 11; Atlanta, GA.
  • 28. Resources from Slides • eBuddy Instant Messenger: http://www.ebuddy.com • W3C WAI-ARIA Live Region References: • http://www.w3.org/TR/wai-aria • http://www.w3.org/TR/wai-aria-primer • http://www.w3.org/TR/wai-aria-practices • Community ARIA Reference: http://wiki.codetalks.org • ARIA introduction: http://dev.opera.com/articles/view/introduction-to-wai-aria • Previous W4A Paper: Thiessen, Peter, Chen, Charles. Ajax Live Regions: Chat as a Case Example. Proceedings of the 2007 international cross-disciplinary workshop on Web accessibility (W4A), 2007. • (XEROX) PARC Research paper on tweet verbosity: Bernstein, M.; Kairam, S.; Suh, B.; Hong, L.; Chi, E. H. A torrent of tweets: managing information overload in online social streams. CHI 2010 Workshop on Microblogging.; 2010 April 11; Atlanta, GA.
  • 29. Questions? Live Region Issue Possible Solution Update Grouping: no method to group updates in Add a live region tag to assign group labels. ARIA - must use client side logic. Prioritization: The assertive setting has few uses and Either add more meaningful prioritization or remove is very limited for prioritization queuing. No setting to assertive as well. alter natural order of updates. Obsolete Items: Not announced and sometimes it is Add a toggle to enable/disable announcing obsolete desirable to announce obsolete items removed from the items DOM. Hidden Updates: UI updates not visible on the Add a toggle to enable/disable announcing invisible screen are not announced when brought into focus. updates brought to the for ground Causality: No setting to determine if an update was a Add a toggle to enable/disable announcing distinction user driven or client (system) driven update. between user and client updates. Tell us what you would like eBuddy IM to be/do: pthiessen@ebuddy.com

Notes de l'éditeur