You should focus — supporting different devices on the web (Chrome Dev Summit 2019)

Chrome for Developers · Beginner ·📰 AI News & Updates ·6y ago
Skills: UX Research60%

Key Takeaways

Supporting different devices on the web with focus on accessibility

Full Transcript

hello I'm Monica from Chrome's web developer ecosystem team I'm part of the small team that build a web application like Skoosh and web game-like rocks so whenever we were starting these project we start with design and think about responsive design think about desktop and how it looks like on the smart phone and you think about the click interaction and touch interaction and this is all great this is a common practice and it's so great that you're thinking about a specific design but many other users might be interacting with your website using something other than mouse and tap for example other user might be accessing your website only using keyboard or other assistive technology or other users might be accessing your website using screen readers and listening to what's on the screen other case user might be accessing your website using feature phone with tiny screen or on the smart TV using giant screen and using a more controller as a mouse so whenever we build a web application we need to think about those different devices and all of the users using those device and making sure that nobody gets left behind let's think about this small web application that has a menu you click on it some new content loading and then you need to click Next this seems very simple it's only to click but for users using keyboard this might be different so for the same web site user might have to tap the key many times to select the menu and then once the page is loaded they have to click many many many many more times on the keyboard to get to the next button and this is not great so in this case we as a web developer needs to do a little bit of focus management see the browser if they found a focusable element like button then it focus on it but as a web developer we can add a attribute called tabindex and set the value to minus 1 to tell the browser that this element is not focusable using this attribute we can do technique called lobbing tab index so let's say the website have a collection of items studies selectable you put tabindex of zero to only one item and set everything else to minus one in this way there's only one item that is selectable in a collection and if the user keyboard user wants to move away from the collection they just need to tap tab key and then go to the next button easily if they want to interact with the collection then they can use up and down arrow keys to navigate those collection in this case we add a little bit of JavaScript to listen to those key bits and move the tab index of zero to where the focus should be and move the focus and speaking of focus focus ring or focus highlight is really important in many case this is the only way user know which element has a focus and which one get clicked when they hit enter and this one comes in handy too when the user is accessing your website using tiny screen like feature phone of course if you prefer the mouse and touch user to not see those highlight you can look into focus visible attribute on the CSS to control those and speaking of focus means sometimes need to proactively manage the focus to here's a common user interaction we see on the Internet today you click on the hive logo icon and then the menu side up but where did the highlight go well highlight it's still trapped in the background so even though user open the menu to interact with the menu they cannot get to the menu item in this case you need to move the focus to the menu so click on the hamburger icon menu shows up you need to move the focus into the button inside of the menu and don't forget if user click on it and close the menu then focus should go back to the previous element that had a focus if you want to know how we use these techniques in the real world web application called procs you should check out my talk from Google IO called building fast and smooth web apps thanks for watching [Music]

Original Description

The Web is not just a document you browse through with your mouse and full-size keyboard anymore. The web developer community adopted to touch interaction with invention of smart phone, but now people are starting to access the Web through Assistant and feature phone. On top of that, there are plethora of assistive technology we keep failing to support. Taking the learnings from supporting various input methods for PROXX and continued investigation with Go2Phone, I would like to discuss how to make the Web more accessible for everyone. Not just in the context of usual a11y which mostly focus on supporting disabled users, but in many different day-to-day situations in which we interact with the Web. The talk may cover basic accessibility techniques like aria role and tabintex, as well as more new interaction like voice and spatial navigation. The ultimate goal of this talk is to make sure everybody realizes that they need to build accessible web apps because that's what they have to to support their regular users, not just disabled users. Presented by: Mariko Kosaka #ChromeDevSummit All Sessions → https://goo.gle/CDS19 Subscribe to Google Chrome Developers → https://goo.gle/ChromeDevs Event photos →  https://goo.gle/CDS19Photos event: Chrome Dev Summit 2019; re_ty: Publish; product: Chrome - General; fullname: Developer, Mariko Kosaka,;
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Chrome for Developers · Chrome for Developers · 0 of 60

← Previous Next →
1 Polymer Performance Patterns (The Polymer Summit 2015)
Polymer Performance Patterns (The Polymer Summit 2015)
Chrome for Developers
2 Polymer Power Tools (The Polymer Summit 2015)
Polymer Power Tools (The Polymer Summit 2015)
Chrome for Developers
3 Chrome Dev Summit 2014 – Chrome Case Studies
Chrome Dev Summit 2014 – Chrome Case Studies
Chrome for Developers
4 Web Directions Code 2015 round up
Web Directions Code 2015 round up
Chrome for Developers
5 Maintainable Code - HTTP203
Maintainable Code - HTTP203
Chrome for Developers
6 iron-ajax… wat?! -- Polycasts #26
iron-ajax… wat?! -- Polycasts #26
Chrome for Developers
7 The Guardian - Supercharged
The Guardian - Supercharged
Chrome for Developers
8 ES2015 (next version of JavaScript), Totally Tooling Tips (S2 Ep1)
ES2015 (next version of JavaScript), Totally Tooling Tips (S2 Ep1)
Chrome for Developers
9 #AskPolymer: Rob answers all the questions ever -- Polycasts #27
#AskPolymer: Rob answers all the questions ever -- Polycasts #27
Chrome for Developers
10 The Future of JavaScript - HTTP203
The Future of JavaScript - HTTP203
Chrome for Developers
11 Data Binding 101 -- Polycasts #28
Data Binding 101 -- Polycasts #28
Chrome for Developers
12 The Guardian part 2 - Supercharged
The Guardian part 2 - Supercharged
Chrome for Developers
13 The Future of Web Audio: with Chris Wilson and Chris Lowis
The Future of Web Audio: with Chris Wilson and Chris Lowis
Chrome for Developers
14 Chrome 46: New motion-path animations, client hints and service worker improvements
Chrome 46: New motion-path animations, client hints and service worker improvements
Chrome for Developers
15 Sublime Snippets, Totally Tooling Tips (S2 Ep2)
Sublime Snippets, Totally Tooling Tips (S2 Ep2)
Chrome for Developers
16 #AskPolymer: How do you make the show? -- Polycasts #29
#AskPolymer: How do you make the show? -- Polycasts #29
Chrome for Developers
17 Critical Path CSS, Totally Tooling Tips (S2 Mini Tip #1)
Critical Path CSS, Totally Tooling Tips (S2 Mini Tip #1)
Chrome for Developers
18 Binding to Objects -- Polycasts #30
Binding to Objects -- Polycasts #30
Chrome for Developers
19 Player FM - Supercharged
Player FM - Supercharged
Chrome for Developers
20 Where’s the Designer? #AskPolymer -- Polycasts #31
Where’s the Designer? #AskPolymer -- Polycasts #31
Chrome for Developers
21 Jake Beats Wikipedia - HTTP203
Jake Beats Wikipedia - HTTP203
Chrome for Developers
22 Supercharged Observers! -- Polycasts #32
Supercharged Observers! -- Polycasts #32
Chrome for Developers
23 Jai's Web blog - Supercharged
Jai's Web blog - Supercharged
Chrome for Developers
24 Windows Command-line Tooling, Totally Tooling Tips (S2, Ep4)
Windows Command-line Tooling, Totally Tooling Tips (S2, Ep4)
Chrome for Developers
25 What about internationalization? #AskPolymer -- Polycasts #33
What about internationalization? #AskPolymer -- Polycasts #33
Chrome for Developers
26 Developing for Billions (Chrome Dev Summit 2015)
Developing for Billions (Chrome Dev Summit 2015)
Chrome for Developers
27 Google+ Performance Improvement Comparison
Google+ Performance Improvement Comparison
Chrome for Developers
28 Deploying HTTPS: The Green Lock and Beyond (Chrome Dev Summit 2015)
Deploying HTTPS: The Green Lock and Beyond (Chrome Dev Summit 2015)
Chrome for Developers
29 Progressive Web Apps (Chrome Dev Summit 2015)
Progressive Web Apps (Chrome Dev Summit 2015)
Chrome for Developers
30 Instant Loading with Service Workers (Chrome Dev Summit 2015)
Instant Loading with Service Workers (Chrome Dev Summit 2015)
Chrome for Developers
31 Increase Engagement with Web Push Notifications (Chrome Dev Summit 2015)
Increase Engagement with Web Push Notifications (Chrome Dev Summit 2015)
Chrome for Developers
32 Engaging with the Real World: Web Bluetooth and Physical Web (Chrome Dev Summit 2015)
Engaging with the Real World: Web Bluetooth and Physical Web (Chrome Dev Summit 2015)
Chrome for Developers
33 Asking for Permission: respectful, opinionated UI (Chrome Dev Summit 2015)
Asking for Permission: respectful, opinionated UI (Chrome Dev Summit 2015)
Chrome for Developers
34 Polymer - State of the Union (Chrome Dev Summit 2015)
Polymer - State of the Union (Chrome Dev Summit 2015)
Chrome for Developers
35 Building Progressive Web Apps with Polymer (Chrome Dev Summit 2015)
Building Progressive Web Apps with Polymer (Chrome Dev Summit 2015)
Chrome for Developers
36 Introduction to RAIL (Chrome Dev Summit 2015)
Introduction to RAIL (Chrome Dev Summit 2015)
Chrome for Developers
37 DevTools in 2015: Authoring to the max (Chrome Dev Summit 2015)
DevTools in 2015: Authoring to the max (Chrome Dev Summit 2015)
Chrome for Developers
38 RAIL in the real world (Chrome Dev Summit 2015)
RAIL in the real world (Chrome Dev Summit 2015)
Chrome for Developers
39 #ChromeDevSummit talks are up - W00T! -- Polycast #34
#ChromeDevSummit talks are up - W00T! -- Polycast #34
Chrome for Developers
40 V8 Performance from the Driver's Seat (Chrome Dev Summit 2015)
V8 Performance from the Driver's Seat (Chrome Dev Summit 2015)
Chrome for Developers
41 Quantify and improve real-world RAIL (Chrome Dev Summit 2015)
Quantify and improve real-world RAIL (Chrome Dev Summit 2015)
Chrome for Developers
42 Owning your performance: RAIL (Chrome Dev Summit 2015)
Owning your performance: RAIL (Chrome Dev Summit 2015)
Chrome for Developers
43 HTTP/2 101 (Chrome Dev Summit 2015)
HTTP/2 101 (Chrome Dev Summit 2015)
Chrome for Developers
44 Leadership Panel (Chrome Dev Summit 2015)
Leadership Panel (Chrome Dev Summit 2015)
Chrome for Developers
45 Build Processes, Totally Tooling Tips (S2, Ep 5)
Build Processes, Totally Tooling Tips (S2, Ep 5)
Chrome for Developers
46 Accessibility (Chrome Dev Summit 2015)
Accessibility (Chrome Dev Summit 2015)
Chrome for Developers
47 Binding to Arrays -- Polycasts #35
Binding to Arrays -- Polycasts #35
Chrome for Developers
48 HTTP2 - HTTP203
HTTP2 - HTTP203
Chrome for Developers
49 Chrome 47: Splash Screens, requestIdleCallback and better desktop notifications (New in Chrome)
Chrome 47: Splash Screens, requestIdleCallback and better desktop notifications (New in Chrome)
Chrome for Developers
50 Call For Submissions - Supercharged
Call For Submissions - Supercharged
Chrome for Developers
51 Cross Device Testing, Totally Tooling Tips (S2 Ep6)
Cross Device Testing, Totally Tooling Tips (S2 Ep6)
Chrome for Developers
52 Testing AJAX with Web Component Tester -- Polycasts #37
Testing AJAX with Web Component Tester -- Polycasts #37
Chrome for Developers
53 Slack: Extended Xmas Special - Supercharged
Slack: Extended Xmas Special - Supercharged
Chrome for Developers
54 Browser testing with Travis & Sauce Labs -- Polycasts #38
Browser testing with Travis & Sauce Labs -- Polycasts #38
Chrome for Developers
55 Optimize for production with Vulcanize -- Polycasts #39
Optimize for production with Vulcanize -- Polycasts #39
Chrome for Developers
56 Highlights from Chrome Dev Summit 2015
Highlights from Chrome Dev Summit 2015
Chrome for Developers
57 Chrome 48: Custom buttons in notifications, DevTools Security panel, and Presentation mode
Chrome 48: Custom buttons in notifications, DevTools Security panel, and Presentation mode
Chrome for Developers
58 Crisper: Protecting your Polymer app with CSP -- Polycasts #40
Crisper: Protecting your Polymer app with CSP -- Polycasts #40
Chrome for Developers
59 How do I use Sass with Polymer? #AskPolymer -- Polycasts #41
How do I use Sass with Polymer? #AskPolymer -- Polycasts #41
Chrome for Developers
60 Colors – DevTools Tonight #0 (Pilot)
Colors – DevTools Tonight #0 (Pilot)
Chrome for Developers

Related Reads

📰
The Algorithm is Judging You: Why Netflix Keeps Showing You ‘The Office’ and How to Break the…
Learn how Netflix's algorithm prioritizes content and how to break its recommendations loop to discover new shows
Medium · AI
📰
The Future of AI: Trends Every Developer Should Watch
Stay ahead of the AI curve by watching emerging trends that can transform development practices and improve efficiencies
Dev.to AI
📰
Why the synthetic-data escape hatch failed and how publishers became toll collectors
Synthetic data can't replace real data at scale, forcing AI labs to pay publishers for content, a major shift in the industry
Dev.to AI
📰
CLM Series/Chapter-22: Which Professions Are Changing? Which Are Disappearing?
Discover which professions are changing or disappearing due to AI and automation, and what it means for your career, so you can prepare and adapt to the future job market
Medium · AI
Up next
The Embarrassing Truth About Billion-Dollar AI Ideas | a16z Partner Anish Acharya
Aishwarya Srinivasan
Watch →