Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Autocomplete] Improve accessibility #18204

Merged

Conversation

oliviertassinari
Copy link
Member

@oliviertassinari oliviertassinari commented Nov 5, 2019

@oliviertassinari oliviertassinari added accessibility a11y component: autocomplete This is the name of the generic UI component, not the React module! labels Nov 5, 2019

### iOS VoiceOver

VoiceOver on iOS Safari doesn't support the `aria-owns` attribute very well.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fymmot do you know if there is a bug we can link, like https://bugs.webkit.org/show_bug.cgi?id=176896?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@oliviertassinari I haven't been able to find a bug for this. I might file one myself.

There is some info in this article (https://tink.uk/using-the-aria-owns-attribute/), near the bottom concerning screen reader support. It's a little bit dated (2015) but there hasn't been any improvements for iOS VoiceOver since then.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing data on a11ysupport.io: https://a11ysupport.io/tech/aria/aria-owns_attribute
powermapper.com: https://www.powermapper.com/tests/screen-readers/aria/

Concerning VoiceOver on iOS I wouldn't put too much time into it. According to powermapper their support is unreliable (59% vs >80% of jaws or nvda) and VoiceOver is stagnating at 12% (https://webaim.org/projects/screenreadersurvey8/) without data on iOS vs macOS for VoiceOver (so it's likely below 10% for VoiceOver + iOS)

Copy link

@fymmot fymmot Nov 5, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@eps1lon
I have to differ here. I would argue that iOS VoiceOver is one of, if not the, single most important screen reader to support.

The 12% number you quoted is for primary desktop screen reader, i.e. Mac VoiceOver. Further down in the survey, you see that 86% of users use a mobile screen reader, and that 71.2% of respondents say that they use iOS VoiceOver.

In my own experience as an accessibility consultant, the trend is that blind users increasingly prefer their phone over their desktop computer, or even stop using the latter completely.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might very well be true but this is the classic data vs anecdote argument. I will always use the data over the anecdote unless you can explain how the data is corrupted or how I'm misinterpreting it.

That being said I see now that I missed the mobile vs desktop usage. It's not very well listed how usage compares (either more, less or equal but not how big the difference is if it exists) but it's not that far fetched to assume they're about equal.

So yes it does make sense to work on these issues but we do have to recognize that supporting VoiceOver iOS will take more effort (see reliability), Thank you for pointing that out 👍

@mui-pr-bot
Copy link

@material-ui/core: parsed: +Infinity% , gzip: +Infinity%
@material-ui/lab: parsed: +Infinity% , gzip: +Infinity%
@material-ui/styles: parsed: +Infinity% , gzip: +Infinity%
@material-ui/system: parsed: +Infinity% , gzip: +Infinity%

Details of bundle changes.

Comparing: f3b7eb7...ee62778

bundle Size Change Size Gzip Change Gzip
docs.main ▲ +602 kB (+Infinity% ) 602 kB ▲ +192 kB (+Infinity% ) 192 kB
@material-ui/core ▲ +349 kB (+Infinity% ) 349 kB ▲ +95.5 kB (+Infinity% ) 95.5 kB
@material-ui/core[umd] ▲ +308 kB (+Infinity% ) 308 kB ▲ +88.9 kB (+Infinity% ) 88.9 kB
@material-ui/lab ▲ +169 kB (+Infinity% ) 169 kB ▲ +50.9 kB (+Infinity% ) 50.9 kB
TablePagination ▲ +139 kB (+Infinity% ) 139 kB ▲ +40.5 kB (+Infinity% ) 40.5 kB
Autocomplete ▲ +125 kB (+Infinity% ) 125 kB ▲ +39.6 kB (+Infinity% ) 39.6 kB
TextField ▲ +121 kB (+Infinity% ) 121 kB ▲ +35.4 kB (+Infinity% ) 35.4 kB
SpeedDialAction ▲ +114 kB (+Infinity% ) 114 kB ▲ +36 kB (+Infinity% ) 36 kB
Select ▲ +112 kB (+Infinity% ) 112 kB ▲ +33.4 kB (+Infinity% ) 33.4 kB
Tooltip ▲ +97.7 kB (+Infinity% ) 97.7 kB ▲ +30.9 kB (+Infinity% ) 30.9 kB
SwipeableDrawer ▲ +90.1 kB (+Infinity% ) 90.1 kB ▲ +27.9 kB (+Infinity% ) 27.9 kB
Menu ▲ +86.6 kB (+Infinity% ) 86.6 kB ▲ +27.2 kB (+Infinity% ) 27.2 kB
SpeedDial ▲ +84.3 kB (+Infinity% ) 84.3 kB ▲ +26.5 kB (+Infinity% ) 26.5 kB
Tabs ▲ +83.7 kB (+Infinity% ) 83.7 kB ▲ +26.6 kB (+Infinity% ) 26.6 kB
Drawer ▲ +82.7 kB (+Infinity% ) 82.7 kB ▲ +25.6 kB (+Infinity% ) 25.6 kB
Chip ▲ +81 kB (+Infinity% ) 81 kB ▲ +24.7 kB (+Infinity% ) 24.7 kB
Popover ▲ +81 kB (+Infinity% ) 81 kB ▲ +25 kB (+Infinity% ) 25 kB
Dialog ▲ +80.9 kB (+Infinity% ) 80.9 kB ▲ +25.1 kB (+Infinity% ) 25.1 kB
Radio ▲ +80.9 kB (+Infinity% ) 80.9 kB ▲ +25.4 kB (+Infinity% ) 25.4 kB
StepButton ▲ +80.6 kB (+Infinity% ) 80.6 kB ▲ +25.3 kB (+Infinity% ) 25.3 kB
Checkbox ▲ +80 kB (+Infinity% ) 80 kB ▲ +25.1 kB (+Infinity% ) 25.1 kB
Switch ▲ +79.3 kB (+Infinity% ) 79.3 kB ▲ +24.7 kB (+Infinity% ) 24.7 kB
Button ▲ +77.8 kB (+Infinity% ) 77.8 kB ▲ +24.1 kB (+Infinity% ) 24.1 kB
MenuItem ▲ +76.4 kB (+Infinity% ) 76.4 kB ▲ +23.8 kB (+Infinity% ) 23.8 kB
ExpansionPanelSummary ▲ +76.4 kB (+Infinity% ) 76.4 kB ▲ +24.1 kB (+Infinity% ) 24.1 kB
TableSortLabel ▲ +75.6 kB (+Infinity% ) 75.6 kB ▲ +23.9 kB (+Infinity% ) 23.9 kB
Snackbar ▲ +75.6 kB (+Infinity% ) 75.6 kB ▲ +23.5 kB (+Infinity% ) 23.5 kB
ListItem ▲ +75.4 kB (+Infinity% ) 75.4 kB ▲ +23.5 kB (+Infinity% ) 23.5 kB
NativeSelect ▲ +75.2 kB (+Infinity% ) 75.2 kB ▲ +23.7 kB (+Infinity% ) 23.7 kB
Fab ▲ +75.1 kB (+Infinity% ) 75.1 kB ▲ +23.3 kB (+Infinity% ) 23.3 kB
Tab ▲ +74.6 kB (+Infinity% ) 74.6 kB ▲ +23.6 kB (+Infinity% ) 23.6 kB
IconButton ▲ +74.4 kB (+Infinity% ) 74.4 kB ▲ +23.2 kB (+Infinity% ) 23.2 kB
ToggleButton ▲ +74.4 kB (+Infinity% ) 74.4 kB ▲ +23.5 kB (+Infinity% ) 23.5 kB
Slider ▲ +73.9 kB (+Infinity% ) 73.9 kB ▲ +23.3 kB (+Infinity% ) 23.3 kB
BottomNavigationAction ▲ +73.8 kB (+Infinity% ) 73.8 kB ▲ +23.3 kB (+Infinity% ) 23.3 kB
CardActionArea ▲ +73.3 kB (+Infinity% ) 73.3 kB ▲ +23.1 kB (+Infinity% ) 23.1 kB
OutlinedInput ▲ +72.5 kB (+Infinity% ) 72.5 kB ▲ +22.5 kB (+Infinity% ) 22.5 kB
ButtonBase ▲ +72.3 kB (+Infinity% ) 72.3 kB ▲ +22.6 kB (+Infinity% ) 22.6 kB
FilledInput ▲ +72 kB (+Infinity% ) 72 kB ▲ +22.3 kB (+Infinity% ) 22.3 kB
TreeItem ▲ +71.9 kB (+Infinity% ) 71.9 kB ▲ +22.6 kB (+Infinity% ) 22.6 kB
Input ▲ +70.9 kB (+Infinity% ) 70.9 kB ▲ +22.1 kB (+Infinity% ) 22.1 kB
ExpansionPanel ▲ +69.7 kB (+Infinity% ) 69.7 kB ▲ +21.7 kB (+Infinity% ) 21.7 kB
Box ▲ +69.2 kB (+Infinity% ) 69.2 kB ▲ +20.9 kB (+Infinity% ) 20.9 kB
InputBase ▲ +69.1 kB (+Infinity% ) 69.1 kB ▲ +21.6 kB (+Infinity% ) 21.6 kB
Rating ▲ +68.3 kB (+Infinity% ) 68.3 kB ▲ +21.8 kB (+Infinity% ) 21.8 kB
StepContent ▲ +67.4 kB (+Infinity% ) 67.4 kB ▲ +21 kB (+Infinity% ) 21 kB
StepLabel ▲ +67 kB (+Infinity% ) 67 kB ▲ +21 kB (+Infinity% ) 21 kB
Breadcrumbs ▲ +66.4 kB (+Infinity% ) 66.4 kB ▲ +20.8 kB (+Infinity% ) 20.8 kB
Collapse ▲ +66.3 kB (+Infinity% ) 66.3 kB ▲ +20.5 kB (+Infinity% ) 20.5 kB
Backdrop ▲ +66.2 kB (+Infinity% ) 66.2 kB ▲ +20.4 kB (+Infinity% ) 20.4 kB
MobileStepper ▲ +66.2 kB (+Infinity% ) 66.2 kB ▲ +20.6 kB (+Infinity% ) 20.6 kB
Link ▲ +65 kB (+Infinity% ) 65 kB ▲ +20.6 kB (+Infinity% ) 20.6 kB
TreeView ▲ +64.8 kB (+Infinity% ) 64.8 kB ▲ +20.2 kB (+Infinity% ) 20.2 kB
Hidden ▲ +64.5 kB (+Infinity% ) 64.5 kB ▲ +20.2 kB (+Infinity% ) 20.2 kB
MenuList ▲ +64.4 kB (+Infinity% ) 64.4 kB ▲ +20.1 kB (+Infinity% ) 20.1 kB
SnackbarContent ▲ +64.1 kB (+Infinity% ) 64.1 kB ▲ +20.1 kB (+Infinity% ) 20.1 kB
FormControlLabel ▲ +64 kB (+Infinity% ) 64 kB ▲ +20.1 kB (+Infinity% ) 20.1 kB
Badge ▲ +63.8 kB (+Infinity% ) 63.8 kB ▲ +19.7 kB (+Infinity% ) 19.7 kB
LinearProgress ▲ +63.8 kB (+Infinity% ) 63.8 kB ▲ +19.9 kB (+Infinity% ) 19.9 kB
InputLabel ▲ +63.8 kB (+Infinity% ) 63.8 kB ▲ +19.8 kB (+Infinity% ) 19.8 kB
Grid ▲ +63.5 kB (+Infinity% ) 63.5 kB ▲ +19.9 kB (+Infinity% ) 19.9 kB
InputAdornment ▲ +63.5 kB (+Infinity% ) 63.5 kB ▲ +20 kB (+Infinity% ) 20 kB
CardHeader ▲ +63.5 kB (+Infinity% ) 63.5 kB ▲ +20 kB (+Infinity% ) 20 kB
ListItemText ▲ +63.4 kB (+Infinity% ) 63.4 kB ▲ +19.9 kB (+Infinity% ) 19.9 kB
Stepper ▲ +63.2 kB (+Infinity% ) 63.2 kB ▲ +19.9 kB (+Infinity% ) 19.9 kB
StepIcon ▲ +63.1 kB (+Infinity% ) 63.1 kB ▲ +19.6 kB (+Infinity% ) 19.6 kB
SpeedDialIcon ▲ +63 kB (+Infinity% ) 63 kB ▲ +19.8 kB (+Infinity% ) 19.8 kB
FormControl ▲ +62.8 kB (+Infinity% ) 62.8 kB ▲ +19.5 kB (+Infinity% ) 19.5 kB
DialogTitle ▲ +62.7 kB (+Infinity% ) 62.7 kB ▲ +19.7 kB (+Infinity% ) 19.7 kB
ButtonGroup ▲ +62.7 kB (+Infinity% ) 62.7 kB ▲ +19.5 kB (+Infinity% ) 19.5 kB
CircularProgress ▲ +62.5 kB (+Infinity% ) 62.5 kB ▲ +19.7 kB (+Infinity% ) 19.7 kB
DialogContentText ▲ +62.5 kB (+Infinity% ) 62.5 kB ▲ +19.6 kB (+Infinity% ) 19.6 kB
TableCell ▲ +62.5 kB (+Infinity% ) 62.5 kB ▲ +19.6 kB (+Infinity% ) 19.6 kB
AppBar ▲ +62.2 kB (+Infinity% ) 62.2 kB ▲ +19.5 kB (+Infinity% ) 19.5 kB
GridListTile ▲ +62.2 kB (+Infinity% ) 62.2 kB ▲ +19.5 kB (+Infinity% ) 19.5 kB
Typography ▲ +62.1 kB (+Infinity% ) 62.1 kB ▲ +19.3 kB (+Infinity% ) 19.3 kB
FormLabel ▲ +61.9 kB (+Infinity% ) 61.9 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
FormHelperText ▲ +61.7 kB (+Infinity% ) 61.7 kB ▲ +19.3 kB (+Infinity% ) 19.3 kB
RadioGroup ▲ +61.7 kB (+Infinity% ) 61.7 kB ▲ +19.3 kB (+Infinity% ) 19.3 kB
GridListTileBar ▲ +61.7 kB (+Infinity% ) 61.7 kB ▲ +19.3 kB (+Infinity% ) 19.3 kB
ToggleButtonGroup ▲ +61.6 kB (+Infinity% ) 61.6 kB ▲ +19.4 kB (+Infinity% ) 19.4 kB
Container ▲ +61.6 kB (+Infinity% ) 61.6 kB ▲ +19.2 kB (+Infinity% ) 19.2 kB
SvgIcon ▲ +61.5 kB (+Infinity% ) 61.5 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
Icon ▲ +61.2 kB (+Infinity% ) 61.2 kB ▲ +19.2 kB (+Infinity% ) 19.2 kB
Avatar ▲ +61.2 kB (+Infinity% ) 61.2 kB ▲ +19.2 kB (+Infinity% ) 19.2 kB
ListSubheader ▲ +61.2 kB (+Infinity% ) 61.2 kB ▲ +19.2 kB (+Infinity% ) 19.2 kB
Card ▲ +61.2 kB (+Infinity% ) 61.2 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
StepConnector ▲ +61.2 kB (+Infinity% ) 61.2 kB ▲ +19.2 kB (+Infinity% ) 19.2 kB
Step ▲ +61.1 kB (+Infinity% ) 61.1 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
Divider ▲ +61 kB (+Infinity% ) 61 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
Table ▲ +61 kB (+Infinity% ) 61 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
TableRow ▲ +61 kB (+Infinity% ) 61 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
GridList ▲ +60.9 kB (+Infinity% ) 60.9 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
Skeleton ▲ +60.9 kB (+Infinity% ) 60.9 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
BottomNavigation ▲ +60.8 kB (+Infinity% ) 60.8 kB ▲ +19 kB (+Infinity% ) 19 kB
List ▲ +60.8 kB (+Infinity% ) 60.8 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
CardMedia ▲ +60.8 kB (+Infinity% ) 60.8 kB ▲ +19.1 kB (+Infinity% ) 19.1 kB
Toolbar ▲ +60.8 kB (+Infinity% ) 60.8 kB ▲ +19 kB (+Infinity% ) 19 kB
Paper ▲ +60.7 kB (+Infinity% ) 60.7 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
DialogContent ▲ +60.7 kB (+Infinity% ) 60.7 kB ▲ +19 kB (+Infinity% ) 19 kB
ListItemIcon ▲ +60.6 kB (+Infinity% ) 60.6 kB ▲ +19 kB (+Infinity% ) 19 kB
ListItemAvatar ▲ +60.6 kB (+Infinity% ) 60.6 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
TableFooter ▲ +60.6 kB (+Infinity% ) 60.6 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
TableHead ▲ +60.6 kB (+Infinity% ) 60.6 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
TableBody ▲ +60.5 kB (+Infinity% ) 60.5 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
DialogActions ▲ +60.5 kB (+Infinity% ) 60.5 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
ExpansionPanelActions ▲ +60.5 kB (+Infinity% ) 60.5 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
CardActions ▲ +60.5 kB (+Infinity% ) 60.5 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
FormGroup ▲ +60.5 kB (+Infinity% ) 60.5 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
ListItemSecondaryAction ▲ +60.5 kB (+Infinity% ) 60.5 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
CardContent ▲ +60.4 kB (+Infinity% ) 60.4 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
ExpansionPanelDetails ▲ +60.4 kB (+Infinity% ) 60.4 kB ▲ +18.9 kB (+Infinity% ) 18.9 kB
CssBaseline ▲ +56 kB (+Infinity% ) 56 kB ▲ +17.5 kB (+Infinity% ) 17.5 kB
docs.landing ▲ +55.6 kB (+Infinity% ) 55.6 kB ▲ +14.6 kB (+Infinity% ) 14.6 kB
@material-ui/styles ▲ +50.8 kB (+Infinity% ) 50.8 kB ▲ +15.4 kB (+Infinity% ) 15.4 kB
Popper ▲ +28.5 kB (+Infinity% ) 28.5 kB ▲ +10.2 kB (+Infinity% ) 10.2 kB
Slide ▲ +24.1 kB (+Infinity% ) 24.1 kB ▲ +8.21 kB (+Infinity% ) 8.21 kB
Grow ▲ +22.6 kB (+Infinity% ) 22.6 kB ▲ +7.72 kB (+Infinity% ) 7.72 kB
Zoom ▲ +22.1 kB (+Infinity% ) 22.1 kB ▲ +7.6 kB (+Infinity% ) 7.6 kB
Fade ▲ +22 kB (+Infinity% ) 22 kB ▲ +7.6 kB (+Infinity% ) 7.6 kB
styles/createMuiTheme ▲ +15.2 kB (+Infinity% ) 15.2 kB ▲ +5.36 kB (+Infinity% ) 5.36 kB
@material-ui/system ▲ +14.8 kB (+Infinity% ) 14.8 kB ▲ +4.06 kB (+Infinity% ) 4.06 kB
Modal ▲ +14.2 kB (+Infinity% ) 14.2 kB ▲ +4.96 kB (+Infinity% ) 4.96 kB
useAutocomplete ▲ +11.7 kB (+Infinity% ) 11.7 kB ▲ +4.32 kB (+Infinity% ) 4.32 kB
TextareaAutosize ▲ +5.06 kB (+Infinity% ) 5.06 kB ▲ +2.11 kB (+Infinity% ) 2.11 kB
RootRef ▲ +4.43 kB (+Infinity% ) 4.43 kB ▲ +1.67 kB (+Infinity% ) 1.67 kB
ClickAwayListener ▲ +3.85 kB (+Infinity% ) 3.85 kB ▲ +1.55 kB (+Infinity% ) 1.55 kB
colorManipulator ▲ +3.83 kB (+Infinity% ) 3.83 kB ▲ +1.52 kB (+Infinity% ) 1.52 kB
Portal ▲ +2.87 kB (+Infinity% ) 2.87 kB ▲ +1.29 kB (+Infinity% ) 1.29 kB
useMediaQuery ▲ +2.49 kB (+Infinity% ) 2.49 kB ▲ +1.05 kB (+Infinity% ) 1.05 kB
NoSsr ▲ +2.19 kB (+Infinity% ) 2.19 kB ▲ +1.04 kB (+Infinity% ) 1.04 kB

Generated by 🚫 dangerJS against ee62778

@fymmot
Copy link

fymmot commented Nov 5, 2019

This will do the trick 👍
I retested with iPhone and iOS and I can swipe forward from the input field to the suggestions.

@oliviertassinari
Copy link
Member Author

https://webaim.org/projects/screenreadersurvey8/

@eps1lon Thank you for sharing this survey. Very interesting!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accessibility a11y component: autocomplete This is the name of the generic UI component, not the React module!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Autocomplete] Suggestions cannot be found using iOS VoiceOver swipe gesture
4 participants