There's a lot to be done in this department. I'm going to try and restrict this issue to things we can do in code without visual design input.
[x] Replace tappable views like ImageView with interactive elements like ImageButton or FloatingActionButton. Favor (and maybe replace?) Google-made elements like com.google.android.material.floatingactionbutton.FloatingActionButton over custom ones like com.melnykov.fab.FloatingActionButton
[x] Set contentDescription on all interactive elements with concise descriptions of what they do that begin with a verb, e.g. "Save observation" for the FAB in the bottom tool bar in the observation editor
[x] Audit all layouts and set the contentDescription attribute when the linter suggests it and it's appropriate. For elements that are always invisible or are strictly decorative like views that are just drop shadows or user profile pics that appear next to their names in text, set android:importantForAccessibility="no".
[x] Use android:labelFor for all text views that label another input view
[x] Any touchable view that is less than 48dp in either dimension should have a touch target that is at least 48dp in that dimension
[x] Replace all uses of android:textSize specified in dp units with sp units so they will scale up or down when people change the font size
[x] Adopt these practices for all future development
I think that will deal with a lot of the most basic issues that come up in tools like the Accessibility Scanner app and the Accessibility Pre-Launch Report on Google Play.
I realize that a lot of this requires authoring text, which I expect will take a few rounds of discussion before we get it right, but please just do your best to add labels where appropriate and that should at least get the conversation started.
This is definitely something to work on in a branch.
And, for the record, doing all this will probably not even get us to the level of "barely adequate," but it's a start. There are a lot of contrast issues that impact our branding that we'll need to discuss with Abhas, and I think once we've done our due diligence technically we might want to see if we can talk to some people who might use these features for a reality check. There are some OK resources at https://developer.android.com/guide/topics/ui/accessibility/ if you want to read up on any of it.
There's a lot to be done in this department. I'm going to try and restrict this issue to things we can do in code without visual design input.
ImageView
with interactive elements likeImageButton
orFloatingActionButton
. Favor (and maybe replace?) Google-made elements likecom.google.android.material.floatingactionbutton.FloatingActionButton
over custom ones likecom.melnykov.fab.FloatingActionButton
contentDescription
attribute when the linter suggests it and it's appropriate. For elements that are always invisible or are strictly decorative like views that are just drop shadows or user profile pics that appear next to their names in text, setandroid:importantForAccessibility="no"
.android:labelFor
for all text views that label another input viewandroid:textSize
specified indp
units withsp
units so they will scale up or down when people change the font sizeI think that will deal with a lot of the most basic issues that come up in tools like the Accessibility Scanner app and the Accessibility Pre-Launch Report on Google Play.
I realize that a lot of this requires authoring text, which I expect will take a few rounds of discussion before we get it right, but please just do your best to add labels where appropriate and that should at least get the conversation started.
This is definitely something to work on in a branch.
And, for the record, doing all this will probably not even get us to the level of "barely adequate," but it's a start. There are a lot of contrast issues that impact our branding that we'll need to discuss with Abhas, and I think once we've done our due diligence technically we might want to see if we can talk to some people who might use these features for a reality check. There are some OK resources at https://developer.android.com/guide/topics/ui/accessibility/ if you want to read up on any of it.