(Go: >> BACK << -|- >> HOME <<)

SlideShare a Scribd company logo
The
Pointerless
Web
Nicholas C. Zakas
The Pointerless Web
@slicknet



Complaints: @jcleblanc
Accessibility
           He means
         blind people,
             right?
Visual   Auditory   Motor           Cognitive




                       http://webaim.org/intro/#people
Blind
         Uses screen reader and
         keyboard (and/or braille
         reader)

         Low Vision
         Uses monitor, keyboard,
         mouse, and screen
         magnifier

Visual   Color Blind
         Uses monitor, keyboard,
         mouse, and high contrast
               http://webaim.org/intro/#people
Deaf
           Uses monitor, keyboard,
           and mouse (subtitles on
           videos)

           Low Hearing
           Uses monitor, keyboard,
           and mouse (subtitles on
           videos)

Auditory

                 http://webaim.org/intro/#people
Limited Fine Motor
        Control
        Uses monitor and
        keyboard

        Only Gross Motor Control
        Uses monitor and single
        switch

        Pain/Paralysis/RSI
Motor   Various other means of
        accessing a computer


             http://webaim.org/intro/#people
Memory Deficit

            Problem-Solving Deficit

            Attention Deficit

            Reading, Linguistic, Verbal
            Comprehension Deficit

            Math Comprehension
Cognitive   Deficit

            Visual Comprehension
            Deficit
                  http://webaim.org/intro/#people
Them
Me
Carpel Tunnel Syndrome
Compression of the
median nerve between
ligament and carpal bones
Not me :)
The Pointerless Web
The Pointerless Web
The Pointerless Web
Browser Keyboard Shortcuts
Ctrl   N    New browser window

Ctrl   T    New browser tab

Ctrl   W    Close browser tab
Browser Keyboard Shortcuts
Alt    D    Set focus to address bar

Ctrl   L    Set focus to address bar

Ctrl   E    Set focus to search box
Browser Keyboard Shortcuts
Ctrl   +    Zoom in

Ctrl   -    Zoom out

Ctrl   0    Reset zoom level
Browser Keyboard Shortcuts
Ctrl      Tab         Go to next tab

Ctrl      Shift       Tab          Go to previous tab

Alt       →       Forward button

Alt       ←       Back button
Navigating the Web
    with Focus
Click here
This outline tells
 me where the
 input focus is




          Click here
Move forward      Activate currently-
between links and        focused
  form controls       link or button




 Hold with tab to
 move backward
nobr {
  white-space: nowrap
}

/* states */

:focus {
   outline: auto 5px -webkit-focus-ring-color
}

/* Read-only text fields do not show a focus ring but do still receive focus */
html:focus, body:focus, input[readonly]:focus {
  outline: none
}

applet:focus, embed:focus, iframe:focus, object:focus {
  outline: none
}

input:focus, textarea:focus, isindex:focus, keygen:focus, select:focus {
  outline-offset: -2px
}
Custom Focus Styles

a:focus,
input:focus {
   outline: 1px solid red;
   color: red;
}
Eliminating Focus Styles?!?!

a{
  outline: 0;
}
You might already
 be doing this!!!
/* http://meyerweb.com/eric/tools/css/reset/ */
/* v1.0 | 20080212 */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
   margin: 0;
   padding: 0;
   border: 0;
   outline: 0;
   font-size: 100%;
   vertical-align: baseline;
   background: transparent;
}
body {
   line-height: 1;
}
ol, ul {
Who?
Upgrade!
What’s Focusable?
 Focusable     Not Focusable*
 <a>           <span>
 <input>       <div>
 <textarea>    <p>
 <select>      <section>
 <button>      <header>
 <body>        <footer>
 <iframe>      <article>
 <object>      EVERYTHING ELSE!

* By default
Working with Focus
var button = document.getElementById("my-btn");

button.focus();

var focused = document.activeElement;

console.log(button === focused); // true
Make Focusable
<span id="my-span" tabindex="0">
  Howdy!
</span>
                           Add into the
                         normal tab order

var mySpan = document.getElementById(“my-span”);
mySpan.focus();
Make Focusable
<span id="my-span" tabindex="-1">
  Howdy!
</span>                  Not in tab order
                           but can use
                              focus()
var mySpan = document.getElementById(“my-span”);
mySpan.focus();
Focus
• Don’t hide the focus rectangle
  – Unless you’re using a custom focus style
• Use links to navigate to URLs
• Use buttons for in-page actions
  or form submission
Links & Buttons
    The only way I
   can interact with
       the page
Characteristics of Links & Buttons
               Can receive focus
Click here
               Show focus visually

               Part of normal tab order

               The onclick handler is
                called when Enter is
                pressed
Not a Button!
<span onclick="doSomething()">
  Click Me
</span>
                                 Focusable

                                 Visual Focus

                                 Tab Order

                                 Enter for onclick
Still Not a Button!
<span tabindex="0" onclick="doSomething()">
  Click Me
</span>

                             Focusable

                            Visual Focus
                            Tab Order
                              Enter for onclick
Still Not a Button!
<span tabindex="0" role="button"
       onclick="doSomething()">
  Click Me
</span>
                             Focusable

                            Visual Focus
                            Tab Order
                              Enter for onclick
Spatial Navigation
*



* Requires CrossFire Chrome extension
Spatial Navigation

Shift    →    Next link to the right

Shift    ←    Next link to the left

Shift    ↑    Next link to the top

Shift    ↓    Next link to the bottom
Hover

I can’t hover
Bad Hover
.rect .controls {
   display: none;
}

.rect:hover .controls {
   display: block;
}
Better Hover
.rect .controls {
   display: none;
}

.rect:hover .controls,
.rect:focus .controls {
   display: block;
}
Hover
• Don’t rely on hover to show important details
  or functionality
• Whenever you use :hover, also use :focus
Dialogs

Don’t lose focus
Dialogs
• Set focus to dialog element when displayed
  – Set tabIndex = -1 and use focus()
• Remember where focus was before the dialog
  was opened
  – document.activeElement
• Pressing Esc should close
  the dialog and set focus
  back to where it was
• Keep focus in the dialog
Keep Focus in Dialog
document.addEventListener(“focus”,
  function(event) {
     if (!dialogNode.contains(event.target)) {
        event.stopPropagation();
        dialogNode.focus();
     }
  }, true);
Keyboard Shortcuts
          Not a
     replacement for
     everything else!
Common Keyboard Shortcuts
     ?   Show shortcuts

     J   Go to next item

     K   Go to previous item


     U   Back to list view


     /   Focus Search
Common Keyboard Shortcuts

  G   then       Go to something

  G   then   I   Go to Inbox

  G   then   H   Go to Home
Common Keyboard Shortcuts
Keyboard Shortcuts
• Use ? to bring up shortcuts list in a dialog
• Make use of common keyboard shortcuts
  where possible (lists)
• Use the convention of G
  followed by another letter
  to navigate to sections
• Use single letters for
  common actions
• Shift focus appropriately
Demos
Accessibility
Visual   Auditory   Motor           Cognitive




                       http://webaim.org/intro/#people
Them
Me
Us
Thank you
Etcetera
• My blog:      nczonline.net
• Twitter:      @slicknet
• These Slides: slideshare.net/nzakas

More Related Content

Similar to The Pointerless Web

menus controls
menus controlsmenus controls
menus controls
Dr. V Vorvoreanu
 
Vivid Video And Really Embedding
Vivid Video And Really EmbeddingVivid Video And Really Embedding
Vivid Video And Really Embedding
tllandry
 
The Audio User Experience for Widgets
The Audio User Experience for WidgetsThe Audio User Experience for Widgets
The Audio User Experience for Widgets
toddkloots
 
WCAG 2.1 update for designers
WCAG 2.1 update for designersWCAG 2.1 update for designers
WCAG 2.1 update for designers
Intopia
 
Keyboard and Interaction Accessibility Techniques
Keyboard and Interaction Accessibility TechniquesKeyboard and Interaction Accessibility Techniques
Keyboard and Interaction Accessibility Techniques
Jared Smith
 
Tips for building fast multi touch enabled web sites
 Tips for building fast multi touch enabled web sites Tips for building fast multi touch enabled web sites
Tips for building fast multi touch enabled web sites
Aspenware
 
Fast multi touch enabled web sites
Fast multi touch enabled web sitesFast multi touch enabled web sites
Fast multi touch enabled web sites
Aspenware
 
CSS Disable Button - How to Disable Buttons Using CSS - Blogs
CSS Disable Button - How to Disable Buttons Using CSS - BlogsCSS Disable Button - How to Disable Buttons Using CSS - Blogs
CSS Disable Button - How to Disable Buttons Using CSS - Blogs
RonDosh
 
ADVANCE PRESENTATION SKILLS.pptx
ADVANCE PRESENTATION SKILLS.pptxADVANCE PRESENTATION SKILLS.pptx
ADVANCE PRESENTATION SKILLS.pptx
ROWELTREYES
 
Accessibility - A feature you can build
Accessibility - A feature you can buildAccessibility - A feature you can build
Accessibility - A feature you can build
Monika Piotrowicz
 
Time to Stop Wasting Time
Time to Stop Wasting TimeTime to Stop Wasting Time
Time to Stop Wasting Time
angiebakke
 
Clickable DIVs and other icebergs
Clickable DIVs and other icebergsClickable DIVs and other icebergs
Clickable DIVs and other icebergs
Ben Buchanan
 
a11yTO - Web Accessibility for Developers
a11yTO - Web Accessibility for Developersa11yTO - Web Accessibility for Developers
a11yTO - Web Accessibility for Developers
Monika Piotrowicz
 
DHTML - Events & Buttons
DHTML - Events  & ButtonsDHTML - Events  & Buttons
DHTML - Events & Buttons
Deep Patel
 
5 free tools for web accessibility testing
5 free tools for web accessibility testing5 free tools for web accessibility testing
5 free tools for web accessibility testing
John McNabb
 
Accessible modal windows
Accessible modal windowsAccessible modal windows
Accessible modal windows
Russ Weakley
 
About Mobile Accessibility
About Mobile AccessibilityAbout Mobile Accessibility
About Mobile Accessibility
Johnny Sung
 
MacBook Pro Out of the Box - Secondary Faculty
MacBook Pro Out of the Box - Secondary FacultyMacBook Pro Out of the Box - Secondary Faculty
MacBook Pro Out of the Box - Secondary Faculty
Chinese International School
 
Front End Frameworks - are they accessible
Front End Frameworks - are they accessibleFront End Frameworks - are they accessible
Front End Frameworks - are they accessible
Russ Weakley
 
Visual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfVisual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdf
sheenmarie0212
 

Similar to The Pointerless Web (20)

menus controls
menus controlsmenus controls
menus controls
 
Vivid Video And Really Embedding
Vivid Video And Really EmbeddingVivid Video And Really Embedding
Vivid Video And Really Embedding
 
The Audio User Experience for Widgets
The Audio User Experience for WidgetsThe Audio User Experience for Widgets
The Audio User Experience for Widgets
 
WCAG 2.1 update for designers
WCAG 2.1 update for designersWCAG 2.1 update for designers
WCAG 2.1 update for designers
 
Keyboard and Interaction Accessibility Techniques
Keyboard and Interaction Accessibility TechniquesKeyboard and Interaction Accessibility Techniques
Keyboard and Interaction Accessibility Techniques
 
Tips for building fast multi touch enabled web sites
 Tips for building fast multi touch enabled web sites Tips for building fast multi touch enabled web sites
Tips for building fast multi touch enabled web sites
 
Fast multi touch enabled web sites
Fast multi touch enabled web sitesFast multi touch enabled web sites
Fast multi touch enabled web sites
 
CSS Disable Button - How to Disable Buttons Using CSS - Blogs
CSS Disable Button - How to Disable Buttons Using CSS - BlogsCSS Disable Button - How to Disable Buttons Using CSS - Blogs
CSS Disable Button - How to Disable Buttons Using CSS - Blogs
 
ADVANCE PRESENTATION SKILLS.pptx
ADVANCE PRESENTATION SKILLS.pptxADVANCE PRESENTATION SKILLS.pptx
ADVANCE PRESENTATION SKILLS.pptx
 
Accessibility - A feature you can build
Accessibility - A feature you can buildAccessibility - A feature you can build
Accessibility - A feature you can build
 
Time to Stop Wasting Time
Time to Stop Wasting TimeTime to Stop Wasting Time
Time to Stop Wasting Time
 
Clickable DIVs and other icebergs
Clickable DIVs and other icebergsClickable DIVs and other icebergs
Clickable DIVs and other icebergs
 
a11yTO - Web Accessibility for Developers
a11yTO - Web Accessibility for Developersa11yTO - Web Accessibility for Developers
a11yTO - Web Accessibility for Developers
 
DHTML - Events & Buttons
DHTML - Events  & ButtonsDHTML - Events  & Buttons
DHTML - Events & Buttons
 
5 free tools for web accessibility testing
5 free tools for web accessibility testing5 free tools for web accessibility testing
5 free tools for web accessibility testing
 
Accessible modal windows
Accessible modal windowsAccessible modal windows
Accessible modal windows
 
About Mobile Accessibility
About Mobile AccessibilityAbout Mobile Accessibility
About Mobile Accessibility
 
MacBook Pro Out of the Box - Secondary Faculty
MacBook Pro Out of the Box - Secondary FacultyMacBook Pro Out of the Box - Secondary Faculty
MacBook Pro Out of the Box - Secondary Faculty
 
Front End Frameworks - are they accessible
Front End Frameworks - are they accessibleFront End Frameworks - are they accessible
Front End Frameworks - are they accessible
 
Visual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfVisual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdf
 

More from Nicholas Zakas

Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!
Nicholas Zakas
 
JavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and PerformanceJavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and Performance
Nicholas Zakas
 
Scalable JavaScript Application Architecture 2012
Scalable JavaScript Application Architecture 2012Scalable JavaScript Application Architecture 2012
Scalable JavaScript Application Architecture 2012
Nicholas Zakas
 
Maintainable JavaScript 2012
Maintainable JavaScript 2012Maintainable JavaScript 2012
Maintainable JavaScript 2012
Nicholas Zakas
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)
Nicholas Zakas
 
Maintainable JavaScript 2011
Maintainable JavaScript 2011Maintainable JavaScript 2011
Maintainable JavaScript 2011
Nicholas Zakas
 
High Performance JavaScript 2011
High Performance JavaScript 2011High Performance JavaScript 2011
High Performance JavaScript 2011
Nicholas Zakas
 
Mobile Web Speed Bumps
Mobile Web Speed BumpsMobile Web Speed Bumps
Mobile Web Speed Bumps
Nicholas Zakas
 
High Performance JavaScript (Amazon DevCon 2011)
High Performance JavaScript (Amazon DevCon 2011)High Performance JavaScript (Amazon DevCon 2011)
High Performance JavaScript (Amazon DevCon 2011)
Nicholas Zakas
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)
Nicholas Zakas
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Nicholas Zakas
 
YUI Test The Next Generation (YUIConf 2010)
YUI Test The Next Generation (YUIConf 2010)YUI Test The Next Generation (YUIConf 2010)
YUI Test The Next Generation (YUIConf 2010)
Nicholas Zakas
 
High Performance JavaScript (YUIConf 2010)
High Performance JavaScript (YUIConf 2010)High Performance JavaScript (YUIConf 2010)
High Performance JavaScript (YUIConf 2010)
Nicholas Zakas
 
High Performance JavaScript - Fronteers 2010
High Performance JavaScript - Fronteers 2010High Performance JavaScript - Fronteers 2010
High Performance JavaScript - Fronteers 2010
Nicholas Zakas
 
Nicholas' Performance Talk at Google
Nicholas' Performance Talk at GoogleNicholas' Performance Talk at Google
Nicholas' Performance Talk at Google
Nicholas Zakas
 
High Performance JavaScript - WebDirections USA 2010
High Performance JavaScript - WebDirections USA 2010High Performance JavaScript - WebDirections USA 2010
High Performance JavaScript - WebDirections USA 2010
Nicholas Zakas
 
High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010
Nicholas Zakas
 
Responsive interfaces
Responsive interfacesResponsive interfaces
Responsive interfaces
Nicholas Zakas
 
Extreme JavaScript Compression With YUI Compressor
Extreme JavaScript Compression With YUI CompressorExtreme JavaScript Compression With YUI Compressor
Extreme JavaScript Compression With YUI Compressor
Nicholas Zakas
 
Writing Efficient JavaScript
Writing Efficient JavaScriptWriting Efficient JavaScript
Writing Efficient JavaScript
Nicholas Zakas
 

More from Nicholas Zakas (20)

Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!
 
JavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and PerformanceJavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and Performance
 
Scalable JavaScript Application Architecture 2012
Scalable JavaScript Application Architecture 2012Scalable JavaScript Application Architecture 2012
Scalable JavaScript Application Architecture 2012
 
Maintainable JavaScript 2012
Maintainable JavaScript 2012Maintainable JavaScript 2012
Maintainable JavaScript 2012
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)
 
Maintainable JavaScript 2011
Maintainable JavaScript 2011Maintainable JavaScript 2011
Maintainable JavaScript 2011
 
High Performance JavaScript 2011
High Performance JavaScript 2011High Performance JavaScript 2011
High Performance JavaScript 2011
 
Mobile Web Speed Bumps
Mobile Web Speed BumpsMobile Web Speed Bumps
Mobile Web Speed Bumps
 
High Performance JavaScript (Amazon DevCon 2011)
High Performance JavaScript (Amazon DevCon 2011)High Performance JavaScript (Amazon DevCon 2011)
High Performance JavaScript (Amazon DevCon 2011)
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
 
YUI Test The Next Generation (YUIConf 2010)
YUI Test The Next Generation (YUIConf 2010)YUI Test The Next Generation (YUIConf 2010)
YUI Test The Next Generation (YUIConf 2010)
 
High Performance JavaScript (YUIConf 2010)
High Performance JavaScript (YUIConf 2010)High Performance JavaScript (YUIConf 2010)
High Performance JavaScript (YUIConf 2010)
 
High Performance JavaScript - Fronteers 2010
High Performance JavaScript - Fronteers 2010High Performance JavaScript - Fronteers 2010
High Performance JavaScript - Fronteers 2010
 
Nicholas' Performance Talk at Google
Nicholas' Performance Talk at GoogleNicholas' Performance Talk at Google
Nicholas' Performance Talk at Google
 
High Performance JavaScript - WebDirections USA 2010
High Performance JavaScript - WebDirections USA 2010High Performance JavaScript - WebDirections USA 2010
High Performance JavaScript - WebDirections USA 2010
 
High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010
 
Responsive interfaces
Responsive interfacesResponsive interfaces
Responsive interfaces
 
Extreme JavaScript Compression With YUI Compressor
Extreme JavaScript Compression With YUI CompressorExtreme JavaScript Compression With YUI Compressor
Extreme JavaScript Compression With YUI Compressor
 
Writing Efficient JavaScript
Writing Efficient JavaScriptWriting Efficient JavaScript
Writing Efficient JavaScript
 

Recently uploaded

DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
this resume for sadika shaikh bca student
this resume for sadika shaikh bca studentthis resume for sadika shaikh bca student
this resume for sadika shaikh bca student
SadikaShaikh7
 
GDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
GDG Cloud Southlake #34: Neatsun Ziv: Automating AppsecGDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
GDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
James Anderson
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design ApproachesKnowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Earley Information Science
 
Verti - EMEA Insurer Innovation Award 2024
Verti - EMEA Insurer Innovation Award 2024Verti - EMEA Insurer Innovation Award 2024
Verti - EMEA Insurer Innovation Award 2024
The Digital Insurer
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
AC Atlassian Coimbatore Session Slides( 22/06/2024)
AC Atlassian Coimbatore Session Slides( 22/06/2024)AC Atlassian Coimbatore Session Slides( 22/06/2024)
AC Atlassian Coimbatore Session Slides( 22/06/2024)
apoorva2579
 
5G bootcamp Sep 2020 (NPI initiative).pptx
5G bootcamp Sep 2020 (NPI initiative).pptx5G bootcamp Sep 2020 (NPI initiative).pptx
5G bootcamp Sep 2020 (NPI initiative).pptx
SATYENDRA100
 
K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024
The Digital Insurer
 
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum ThreatsNavigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
anupriti
 
Lessons Of Binary Analysis - Christien Rioux
Lessons Of Binary Analysis - Christien RiouxLessons Of Binary Analysis - Christien Rioux
Lessons Of Binary Analysis - Christien Rioux
crioux1
 
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
amitchopra0215
 
Blockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre timesBlockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre times
anupriti
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
How Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global ScaleHow Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global Scale
ScyllaDB
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Why do You Have to Redesign?_Redesign Challenge Day 1
Why do You Have to Redesign?_Redesign Challenge Day 1Why do You Have to Redesign?_Redesign Challenge Day 1
Why do You Have to Redesign?_Redesign Challenge Day 1
FellyciaHikmahwarani
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 

Recently uploaded (20)

DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
this resume for sadika shaikh bca student
this resume for sadika shaikh bca studentthis resume for sadika shaikh bca student
this resume for sadika shaikh bca student
 
GDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
GDG Cloud Southlake #34: Neatsun Ziv: Automating AppsecGDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
GDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design ApproachesKnowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
 
Verti - EMEA Insurer Innovation Award 2024
Verti - EMEA Insurer Innovation Award 2024Verti - EMEA Insurer Innovation Award 2024
Verti - EMEA Insurer Innovation Award 2024
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
AC Atlassian Coimbatore Session Slides( 22/06/2024)
AC Atlassian Coimbatore Session Slides( 22/06/2024)AC Atlassian Coimbatore Session Slides( 22/06/2024)
AC Atlassian Coimbatore Session Slides( 22/06/2024)
 
5G bootcamp Sep 2020 (NPI initiative).pptx
5G bootcamp Sep 2020 (NPI initiative).pptx5G bootcamp Sep 2020 (NPI initiative).pptx
5G bootcamp Sep 2020 (NPI initiative).pptx
 
K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024
 
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum ThreatsNavigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
 
Lessons Of Binary Analysis - Christien Rioux
Lessons Of Binary Analysis - Christien RiouxLessons Of Binary Analysis - Christien Rioux
Lessons Of Binary Analysis - Christien Rioux
 
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
 
Blockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre timesBlockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre times
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
How Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global ScaleHow Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global Scale
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Why do You Have to Redesign?_Redesign Challenge Day 1
Why do You Have to Redesign?_Redesign Challenge Day 1Why do You Have to Redesign?_Redesign Challenge Day 1
Why do You Have to Redesign?_Redesign Challenge Day 1
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 

The Pointerless Web

  • 4. Accessibility He means blind people, right?
  • 5. Visual Auditory Motor Cognitive http://webaim.org/intro/#people
  • 6. Blind Uses screen reader and keyboard (and/or braille reader) Low Vision Uses monitor, keyboard, mouse, and screen magnifier Visual Color Blind Uses monitor, keyboard, mouse, and high contrast http://webaim.org/intro/#people
  • 7. Deaf Uses monitor, keyboard, and mouse (subtitles on videos) Low Hearing Uses monitor, keyboard, and mouse (subtitles on videos) Auditory http://webaim.org/intro/#people
  • 8. Limited Fine Motor Control Uses monitor and keyboard Only Gross Motor Control Uses monitor and single switch Pain/Paralysis/RSI Motor Various other means of accessing a computer http://webaim.org/intro/#people
  • 9. Memory Deficit Problem-Solving Deficit Attention Deficit Reading, Linguistic, Verbal Comprehension Deficit Math Comprehension Cognitive Deficit Visual Comprehension Deficit http://webaim.org/intro/#people
  • 10. Them
  • 11. Me
  • 12. Carpel Tunnel Syndrome Compression of the median nerve between ligament and carpal bones
  • 17. Browser Keyboard Shortcuts Ctrl N New browser window Ctrl T New browser tab Ctrl W Close browser tab
  • 18. Browser Keyboard Shortcuts Alt D Set focus to address bar Ctrl L Set focus to address bar Ctrl E Set focus to search box
  • 19. Browser Keyboard Shortcuts Ctrl + Zoom in Ctrl - Zoom out Ctrl 0 Reset zoom level
  • 20. Browser Keyboard Shortcuts Ctrl Tab Go to next tab Ctrl Shift Tab Go to previous tab Alt → Forward button Alt ← Back button
  • 21. Navigating the Web with Focus
  • 23. This outline tells me where the input focus is Click here
  • 24. Move forward Activate currently- between links and focused form controls link or button Hold with tab to move backward
  • 25. nobr { white-space: nowrap } /* states */ :focus { outline: auto 5px -webkit-focus-ring-color } /* Read-only text fields do not show a focus ring but do still receive focus */ html:focus, body:focus, input[readonly]:focus { outline: none } applet:focus, embed:focus, iframe:focus, object:focus { outline: none } input:focus, textarea:focus, isindex:focus, keygen:focus, select:focus { outline-offset: -2px }
  • 26. Custom Focus Styles a:focus, input:focus { outline: 1px solid red; color: red; }
  • 28. You might already be doing this!!!
  • 29. /* http://meyerweb.com/eric/tools/css/reset/ */ /* v1.0 | 20080212 */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; } body { line-height: 1; } ol, ul {
  • 30. Who?
  • 32. What’s Focusable? Focusable Not Focusable* <a> <span> <input> <div> <textarea> <p> <select> <section> <button> <header> <body> <footer> <iframe> <article> <object> EVERYTHING ELSE! * By default
  • 33. Working with Focus var button = document.getElementById("my-btn"); button.focus(); var focused = document.activeElement; console.log(button === focused); // true
  • 34. Make Focusable <span id="my-span" tabindex="0"> Howdy! </span> Add into the normal tab order var mySpan = document.getElementById(“my-span”); mySpan.focus();
  • 35. Make Focusable <span id="my-span" tabindex="-1"> Howdy! </span> Not in tab order but can use focus() var mySpan = document.getElementById(“my-span”); mySpan.focus();
  • 36. Focus • Don’t hide the focus rectangle – Unless you’re using a custom focus style • Use links to navigate to URLs • Use buttons for in-page actions or form submission
  • 37. Links & Buttons The only way I can interact with the page
  • 38. Characteristics of Links & Buttons  Can receive focus Click here  Show focus visually  Part of normal tab order  The onclick handler is called when Enter is pressed
  • 39. Not a Button! <span onclick="doSomething()"> Click Me </span> Focusable Visual Focus Tab Order Enter for onclick
  • 40. Still Not a Button! <span tabindex="0" onclick="doSomething()"> Click Me </span>  Focusable  Visual Focus  Tab Order Enter for onclick
  • 41. Still Not a Button! <span tabindex="0" role="button" onclick="doSomething()"> Click Me </span>  Focusable  Visual Focus  Tab Order Enter for onclick
  • 43. * * Requires CrossFire Chrome extension
  • 44. Spatial Navigation Shift → Next link to the right Shift ← Next link to the left Shift ↑ Next link to the top Shift ↓ Next link to the bottom
  • 46. Bad Hover .rect .controls { display: none; } .rect:hover .controls { display: block; }
  • 47. Better Hover .rect .controls { display: none; } .rect:hover .controls, .rect:focus .controls { display: block; }
  • 48. Hover • Don’t rely on hover to show important details or functionality • Whenever you use :hover, also use :focus
  • 50. Dialogs • Set focus to dialog element when displayed – Set tabIndex = -1 and use focus() • Remember where focus was before the dialog was opened – document.activeElement • Pressing Esc should close the dialog and set focus back to where it was • Keep focus in the dialog
  • 51. Keep Focus in Dialog document.addEventListener(“focus”, function(event) { if (!dialogNode.contains(event.target)) { event.stopPropagation(); dialogNode.focus(); } }, true);
  • 52. Keyboard Shortcuts Not a replacement for everything else!
  • 53. Common Keyboard Shortcuts ? Show shortcuts J Go to next item K Go to previous item U Back to list view / Focus Search
  • 54. Common Keyboard Shortcuts G then Go to something G then I Go to Inbox G then H Go to Home
  • 56. Keyboard Shortcuts • Use ? to bring up shortcuts list in a dialog • Make use of common keyboard shortcuts where possible (lists) • Use the convention of G followed by another letter to navigate to sections • Use single letters for common actions • Shift focus appropriately
  • 57. Demos
  • 59. Visual Auditory Motor Cognitive http://webaim.org/intro/#people
  • 60. Them
  • 61. Me
  • 62. Us
  • 64. Etcetera • My blog: nczonline.net • Twitter: @slicknet • These Slides: slideshare.net/nzakas

Editor's Notes

  1. Go to browser and show navigation using the keyboard.
  2. Go to blog navigation example.
  3. Put this into Web Inspector and show the difference.
  4. Show Gmail
  5. Demo!
  6. Don’t hide important information and then show on hoverI can’t get to it
  7. Show Twitter
  8. Show GitHub keyboard shortcut dialog
  9. Show Twitter
  10. GoogleGmailShortcuts dialogNavigate messagesReplyCreate newNavigate to link in emailGo to labelGo to InboxTwitterShortcuts dialogNavigate tweetsGo HomeGo to ConnectDirect MessagesReplyGitHubHomeIssuesShortcuts Dialog“T” for file finder