SlideShare a Scribd company logo
1 of 43
Download to read offline
Android Accessibility

For Everyone
I/O 19’ Extended Korea Android

2019. 06. 15. Google Sta>up Campus
Android Accessibility

For Everyone
I/O 19’ Extended Korea Android

2019. 06. 15. Google Sta>up Campus
.

https://youtu.be/DWtL-i8k2QE !
Kyeongwan Kang


GDG Korea Android
Accessibility
Accessibility
Accessibility .
Accessibility is the design of products, devices, services, or
environments for people with disabilities.

Accessibility can be viewed as the "ability to access" and beneAt
from some system or entity. The concept focuses on enabling
access for people with disabilities, or special needs, or enabling
access through the use of assistive technology; however, research
and development in accessibility brings beneAts to everyone.

-Wikipedia (Accessibility)
Accessibility
(accessibility) , , .

“ability to access” .



, 

, 

. 

-Wikipedia (Accessibility)
Accessibility
, .
15%

258 

( 123 , 25 , 34 )

- (2018 , )

15% 10 .
15%

258 

( 123 , 25 , 34 )

- (2018 , )

MAU 1000 ,
, , 1000 250
4 1 .
78%
78%
.
What`s new in android
6.7 ,
accessibility
3600 .
Title
What’s Android Accessibility
• 

• 

• 

• 

•
Serving the right module
Title
extended
3 ( ) 9 ( )
Accessibility Menu
• 

• 

•
DaU Theme
extended
Dark Theme
• Android Q 

• 

• 

•
Talk back
(Voice Assistant, Samsung)
Talk Back
• Screen Reader

• Google Talk Back

• Voice Assistant

• ,
Screen search
Screen Search
•


• Android Accessibility Suite 7.3 

• View ContentDescription


• 

• But Recycler View
5 3 .
.
5 3 .
affected .
• 

• 

• 

•
<Button
android:id="@+id/backButton"
android:layout_width="36dp"
android:layout_height="36dp"
android:background=“@drawable/arrow”/>
<ImageButton
android:id="@+id/plusImageButotn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/black"
android:background="@null"/>
<ImageView
android:id="@+id/editImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/edit"
android:background="@null"/>
<Button
android:id="@+id/backButton"
android:layout_width="36dp"
android:layout_height="36dp"
android:background=“@drawable/arrow”/>
<ImageButton
android:id="@+id/plusImageButotn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/black"
android:background="@null"/>
<ImageView
android:id="@+id/editImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/edit"
android:background="@null"/>
<Button
android:id="@+id/backButton"
android:layout_width="36dp"
android:layout_height="36dp"
android:background=“@drawable/arrow”/>
<ImageButton
android:id="@+id/plusImageButotn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/black"
android:background="@null"/>
<ImageView
android:id="@+id/editImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/edit"
android:background="@null"/>
<Button
android:id="@+id/backButton"
android:layout_width="36dp"
android:layout_height="36dp"
android:background=“@drawable/arrow”/>
<ImageButton
android:id="@+id/plusImageButotn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/black"
android:background="@null"/>
<ImageView
android:id="@+id/editImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/edit"
android:background="@null"/>
<ImageButton
android:id="@+id/backButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription=" "
android:padding="6dp"
android:src="@drawable/arrow" />
<ImageButton
android:id="@+id/plusImageButotn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription=" "
android:padding="6dp"
android:src="@drawable/add" />
<ImageView
android:id="@+id/editImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription=" "
android:padding="6dp"
android:src="@drawable/edit" />
<ImageButton
android:id="@+id/backButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription=" "
android:padding="6dp"
android:src="@drawable/arrow" />
<ImageButton
android:id="@+id/plusImageButotn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription=" "
android:padding="6dp"
android:src="@drawable/add" />
<ImageView
android:id="@+id/editImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription=" "
android:padding="6dp"
android:src="@drawable/edit" />
• ( )

• 

• contentDescription
( hint)

• ContentDescription > text > hint

(TextView)

• Text > hint > ContentDescription
EditText
• 

•
• , ,


• BuZon, ImageBuZon, clickable
ImageView (onClickListener o)
“ ” .

• 

“ ”

• Custom
if (TALKBACK_ON) {
view.setAccessibilityDelegate(new View.AccessibilityDelegate() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
AccessibilityNodeInfoCompat infoCompat = AccessibilityNodeInfoCompat.wrap(info);
AccessibilityNodeInfoCompat.AccessibilityActionCompat clickAction =
new AccessibilityNodeInfoCompat.AccessibilityActionCompat(
AccessibilityNodeInfoCompat.ACTION_CLICK, “ ");
infoCompat.addAction(clickAction);
}
});
}
• UI 

.

• 

• SnackBar

• Toast

• Custom
SendAccessibilityEvent 

.
// ANNOUNCE
AccessibilityManager manager = (AccessibilityManager) context
.getSystemService(Context.ACCESSIBILITY_SERVICE);
AccessibilityEvent e = AccessibilityEvent.obtain();
e.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
e.setClassName(context.getClass().getName());
e.setPackageName(context.getPackageName());
e.getText().add("some text");
manager.sendAccessibilityEvent(e);
//
AccessibilityEvent event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_VIEW_FOCUSED);
event.setSource(view);
event.setClassName(view.getClass().getName());
event.setPackageName(view.getContext().getPackageName());
event.setEnabled(true);
event.setContentDescription(text);
view.sendAccessibilityEventUnchecked(event);
• EditText hint .

• ImageView android:impo>antForAccessibility=“no”



• TextView .

• Component . (SnackBar, Dialog )

• SendAccessibilityEvent 

(View .)
Title
Everyone

can use android
.

More Related Content

Similar to Android Accessibility for Everyone

Android Development
Android DevelopmentAndroid Development
Android DevelopmentDaksh Semwal
 
Android n preview
Android n previewAndroid n preview
Android n previewHassan Abid
 
Android accessibility till_kitkat_nov2013_andevcon
Android accessibility till_kitkat_nov2013_andevconAndroid accessibility till_kitkat_nov2013_andevcon
Android accessibility till_kitkat_nov2013_andevconsonia1sh
 
Google Glass Technology
Google Glass TechnologyGoogle Glass Technology
Google Glass TechnologyIRJET Journal
 
[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android Tips[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android TipsKenichi Kambara
 
Making money with android applications
Making money with android applicationsMaking money with android applications
Making money with android applicationssonia1sh
 
Android Accessibility - Droidcon London
Android Accessibility - Droidcon LondonAndroid Accessibility - Droidcon London
Android Accessibility - Droidcon LondonKelly Shuster
 
Intro to Android for iOS developers
Intro to Android for iOS developersIntro to Android for iOS developers
Intro to Android for iOS developersChiu-Ki Chan
 
Google Glass: A Futuristic Fashion Failure Gadget
Google Glass: A Futuristic Fashion Failure  GadgetGoogle Glass: A Futuristic Fashion Failure  Gadget
Google Glass: A Futuristic Fashion Failure GadgetMd. Salim Reza Jony
 
What's new in Android Wear 2.0
What's new in Android Wear 2.0What's new in Android Wear 2.0
What's new in Android Wear 2.0Peter Friese
 
Google Glass, the GDK, and HTML5
Google Glass, the GDK, and HTML5Google Glass, the GDK, and HTML5
Google Glass, the GDK, and HTML5Oswald Campesato
 
What's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet HaaseWhat's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet HaaseParis Android User Group
 
Google IO 2014 overview
Google IO 2014 overviewGoogle IO 2014 overview
Google IO 2014 overviewBin Yang
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011sullis
 
A Noob’S Guide To Android Application Development
A Noob’S Guide To Android Application DevelopmentA Noob’S Guide To Android Application Development
A Noob’S Guide To Android Application DevelopmentZi Yong Chua
 
Fragments: Why, How, What For?
Fragments: Why, How, What For?Fragments: Why, How, What For?
Fragments: Why, How, What For?Brenda Cook
 

Similar to Android Accessibility for Everyone (20)

Android Development
Android DevelopmentAndroid Development
Android Development
 
Android n preview
Android n previewAndroid n preview
Android n preview
 
12206857
12206857 12206857
12206857
 
Android accessibility till_kitkat_nov2013_andevcon
Android accessibility till_kitkat_nov2013_andevconAndroid accessibility till_kitkat_nov2013_andevcon
Android accessibility till_kitkat_nov2013_andevcon
 
Google Glass Technology
Google Glass TechnologyGoogle Glass Technology
Google Glass Technology
 
[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android Tips[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android Tips
 
Making money with android applications
Making money with android applicationsMaking money with android applications
Making money with android applications
 
Android Accessibility - Droidcon London
Android Accessibility - Droidcon LondonAndroid Accessibility - Droidcon London
Android Accessibility - Droidcon London
 
Intro to Android for iOS developers
Intro to Android for iOS developersIntro to Android for iOS developers
Intro to Android for iOS developers
 
Android Intro
Android IntroAndroid Intro
Android Intro
 
Google Glass: A Futuristic Fashion Failure Gadget
Google Glass: A Futuristic Fashion Failure  GadgetGoogle Glass: A Futuristic Fashion Failure  Gadget
Google Glass: A Futuristic Fashion Failure Gadget
 
Android Made Simple
Android Made SimpleAndroid Made Simple
Android Made Simple
 
What's new in Android Wear 2.0
What's new in Android Wear 2.0What's new in Android Wear 2.0
What's new in Android Wear 2.0
 
Google Glass, the GDK, and HTML5
Google Glass, the GDK, and HTML5Google Glass, the GDK, and HTML5
Google Glass, the GDK, and HTML5
 
What's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet HaaseWhat's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet Haase
 
Google IO 2014 overview
Google IO 2014 overviewGoogle IO 2014 overview
Google IO 2014 overview
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
 
A Noob’S Guide To Android Application Development
A Noob’S Guide To Android Application DevelopmentA Noob’S Guide To Android Application Development
A Noob’S Guide To Android Application Development
 
Android Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar PachauriAndroid Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar Pachauri
 
Fragments: Why, How, What For?
Fragments: Why, How, What For?Fragments: Why, How, What For?
Fragments: Why, How, What For?
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
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...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Android Accessibility for Everyone