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

[docs] Add a11y section to Tabs #20965

Merged
merged 4 commits into from
May 12, 2020
Merged

[docs] Add a11y section to Tabs #20965

merged 4 commits into from
May 12, 2020

Conversation

eps1lon
Copy link
Member

@eps1lon eps1lon commented May 9, 2020

Closes #6955, part of #20600

Rendered preview

@eps1lon eps1lon added docs Improvements or additions to the documentation accessibility a11y component: tabs This is the name of the generic UI component, not the React module! labels May 9, 2020
@eps1lon eps1lon linked an issue May 9, 2020 that may be closed by this pull request
1 task
@mui-pr-bot
Copy link

mui-pr-bot commented May 9, 2020

Details of bundle changes.

Comparing: b0d6b80...426d177

Details of page changes
bundle Size Change Size Gzip Change Gzip
/components/tabs ▲ +1.8 kB (+8.41% ) 23.2 kB -- -1 B
/api-docs/grid-list-tile-bar ▼ -10 B (-0.56% ) 1.79 kB -- -1 B
/api-docs/grid-list-tile ▲ +10 B (+0.58% ) 1.73 kB -- -1 B
/api-docs/grid-list ▼ -10 B (-0.62% ) 1.61 kB -- -1 B
/api-docs/menu ▲ +10 B (+0.42% ) 2.41 kB -- -1 B
/blog/october-2019-update ▲ +10 B (+0.40% ) 2.51 kB -- -1 B
/components/pickers ▲ +10 B (+0.17% ) 6.01 kB -- -1 B
/performance/table-emotion ▼ -10 B (-0.12% ) 8.49 kB -- -1 B
/_app -- 37.2 kB -- -1 B
/api-docs/alert-title -- 1.4 kB -- -1 B
/api-docs/alert -- 2.4 kB -- -1 B
/api-docs/app-bar -- 1.94 kB -- -1 B
/api-docs/autocomplete -- 4.61 kB -- -1 B
/api-docs/avatar-group -- 1.51 kB -- -1 B
/api-docs/avatar -- 1.86 kB -- -1 B
/api-docs/backdrop -- 1.72 kB -- -1 B
/api-docs/badge -- 2.13 kB -- -1 B
/api-docs/bottom-navigation-action -- 1.81 kB -- -1 B
/api-docs/bottom-navigation -- 1.7 kB -- -1 B
/api-docs/breadcrumbs -- 1.84 kB -- -1 B
/api-docs/button-base -- 2.33 kB -- -1 B
/api-docs/button-group -- 2.23 kB -- -1 B
/api-docs/button -- 2.56 kB -- -1 B
/api-docs/card-action-area -- 1.58 kB -- -1 B
/api-docs/card-actions -- 1.47 kB -- -1 B
/api-docs/card-content -- 1.45 kB -- -1 B
/api-docs/card-header -- 1.78 kB -- -1 B
/api-docs/card-media -- 1.69 kB -- -1 B
/api-docs/card -- 1.5 kB -- -1 B
/api-docs/checkbox -- 2.3 kB -- -1 B
/api-docs/chip -- 2.46 kB -- -1 B
/api-docs/circular-progress -- 2.07 kB -- -1 B
/api-docs/click-away-listener -- 1.37 kB -- -1 B
/api-docs/collapse -- 2.13 kB -- -1 B
/api-docs/container -- 1.86 kB -- -1 B
/api-docs/css-baseline -- 1.4 kB -- -1 B
/api-docs/dialog-actions -- 1.47 kB -- -1 B
/api-docs/dialog-content-text -- 1.48 kB -- -1 B
/api-docs/dialog-content -- 1.45 kB -- -1 B
/api-docs/dialog-title -- 1.49 kB -- -1 B
/api-docs/dialog -- 2.73 kB -- -1 B
/api-docs/divider -- 1.81 kB -- -1 B
/api-docs/drawer -- 2.13 kB -- -1 B
/api-docs/expansion-panel-actions -- 1.49 kB -- -1 B
/api-docs/expansion-panel-details -- 1.41 kB -- -1 B
/api-docs/expansion-panel-summary -- 1.72 kB -- -1 B
/api-docs/expansion-panel -- 1.97 kB -- -1 B
/api-docs/fab -- 2.11 kB -- -1 B
/api-docs/fade -- 1.5 kB -- -1 B
/api-docs/filled-input -- 2.87 kB -- -1 B
/api-docs/form-control-label -- 1.98 kB -- -1 B
/api-docs/form-control -- 2.36 kB -- -1 B
/api-docs/form-group -- 1.55 kB -- -1 B
/api-docs/form-helper-text -- 1.91 kB -- -1 B
/api-docs/form-label -- 1.84 kB -- -1 B
/api-docs/grid -- 2.56 kB -- -1 B
/api-docs/grow -- 1.55 kB -- -1 B
/api-docs/hidden -- 1.53 kB -- -1 B
/api-docs/icon-button -- 2.1 kB -- -1 B
/api-docs/icon -- 1.78 kB -- -1 B
/api-docs/input-adornment -- 1.93 kB -- -1 B
/api-docs/input-base -- 2.95 kB -- -1 B
/api-docs/input-label -- 2.07 kB -- -1 B
/api-docs/input -- 2.83 kB -- -1 B
/api-docs/linear-progress -- 2.03 kB -- -1 B
/api-docs/link -- 1.93 kB -- -1 B
/api-docs/list-item-avatar -- 1.5 kB -- -1 B
/api-docs/list-item-icon -- 1.51 kB -- -1 B
/api-docs/list-item-secondary-action -- 1.47 kB -- -1 B
/api-docs/list-item-text -- 1.79 kB -- -1 B
/api-docs/list-item -- 2.25 kB -- -1 B
/api-docs/list-subheader -- 1.77 kB -- -1 B
/api-docs/list -- 1.68 kB -- -1 B
/api-docs/menu-item -- 1.74 kB -- -1 B
/api-docs/menu-list -- 1.57 kB -- -1 B
/api-docs/mobile-stepper -- 1.93 kB -- -1 B
/api-docs/modal -- 2.42 kB -- -1 B
/api-docs/native-select -- 2.08 kB -- -1 B
/api-docs/no-ssr -- 1.3 kB -- -1 B
/api-docs/outlined-input -- 2.98 kB -- -1 B
/api-docs/pagination-item -- 1.97 kB -- -1 B
/api-docs/pagination -- 2.24 kB -- -1 B
/api-docs/paper -- 1.87 kB -- -1 B
/api-docs/popover -- 2.69 kB -- -1 B
/api-docs/popper -- 1.91 kB -- -1 B
/api-docs/portal -- 1.34 kB -- -1 B
/api-docs/radio-group -- 1.45 kB -- -1 B
/api-docs/radio -- 2.12 kB -- -1 B
/api-docs/rating -- 2.49 kB -- -1 B
/api-docs/root-ref -- 1.41 kB -- -1 B
/api-docs/scoped-css-baseline -- 1.4 kB -- -1 B
/api-docs/select -- 2.94 kB -- -1 B
/api-docs/skeleton -- 1.77 kB -- -1 B
/api-docs/slide -- 1.54 kB -- -1 B
/api-docs/slider -- 3.11 kB -- -1 B
/api-docs/snackbar-content -- 1.61 kB -- -1 B
/api-docs/snackbar -- 2.71 kB -- -1 B
/api-docs/speed-dial-action -- 2.04 kB -- -1 B
/api-docs/speed-dial-icon -- 1.55 kB -- -1 B
/api-docs/speed-dial -- 2.3 kB -- -1 B
/api-docs/step-button -- 1.63 kB -- -1 B
/api-docs/step-connector -- 1.54 kB -- -1 B
/api-docs/step-content -- 1.72 kB -- -1 B
/api-docs/step-icon -- 1.57 kB -- -1 B
/api-docs/step-label -- 1.9 kB -- -1 B
/api-docs/step -- 1.64 kB -- -1 B
/api-docs/stepper -- 1.84 kB -- -1 B
/api-docs/svg-icon -- 2.26 kB -- -1 B
/api-docs/swipeable-drawer -- 2 kB -- -1 B
/api-docs/switch -- 2.46 kB -- -1 B
/api-docs/tab-context -- 1.05 kB -- -1 B
/api-docs/tab-list -- 1.08 kB -- -1 B
/api-docs/tab-panel -- 1.45 kB -- -1 B
/api-docs/tab-scroll-button -- 1.61 kB -- -1 B
/api-docs/tab -- 1.99 kB -- -1 B
/api-docs/table-body -- 1.47 kB -- -1 B
/api-docs/table-cell -- 2.13 kB -- -1 B
/api-docs/table-container -- 1.48 kB -- -1 B
/api-docs/table-footer -- 1.47 kB -- -1 B
/api-docs/table-head -- 1.46 kB -- -1 B
/api-docs/table-pagination -- 2.46 kB -- -1 B
/api-docs/table-row -- 1.69 kB -- -1 B
/api-docs/table-sort-label -- 1.83 kB -- -1 B
/api-docs/table -- 1.68 kB -- -1 B
/api-docs/tabs -- 2.68 kB -- -1 B
/api-docs/text-field -- 3.18 kB -- -1 B
/api-docs/textarea-autosize -- 1.13 kB -- -1 B
/api-docs/toggle-button-group -- 1.81 kB -- -1 B
/api-docs/toggle-button -- 1.8 kB -- -1 B
/api-docs/toolbar -- 1.65 kB -- -1 B
/api-docs/tooltip -- 2.54 kB -- -1 B
/api-docs/tree-item -- 1.88 kB -- -1 B
/api-docs/tree-view -- 1.92 kB -- -1 B
/api-docs/typography -- 2.59 kB -- -1 B
/api-docs/zoom -- 1.52 kB -- -1 B
/blog/2019-developer-survey-results -- 6.36 kB -- -1 B
/blog/2019 -- 4.24 kB -- -1 B
/blog/2020-introducing-sketch -- 3.5 kB -- -1 B
/blog/2020-q1-update -- 4.33 kB -- -1 B
/blog/april-2019-update -- 3.13 kB -- -1 B
/blog/august-2019-update -- 2.24 kB -- -1 B
/blog/december-2019-update -- 2.37 kB -- -1 B
/blog/july-2019-update -- 2.13 kB -- -1 B
/blog/june-2019-update -- 2.01 kB -- -1 B
/blog/march-2019-update -- 2.54 kB -- -1 B
/blog/material-ui-v1-is-out -- 6.67 kB -- -1 B
/blog/material-ui-v4-is-out -- 9.68 kB -- -1 B
/blog/may-2019-update -- 2.35 kB -- -1 B
/blog/november-2019-update -- 2.75 kB -- -1 B
/blog/september-2019-update -- 2.68 kB -- -1 B
/company/about -- 1.74 kB -- -1 B
/company/contact -- 1.33 kB -- -1 B
/company/jobs -- 1.35 kB -- -1 B
/components/about-the-lab -- 6.8 kB -- -1 B
/components/alert -- 12.9 kB -- -1 B
/components/app-bar -- 30.2 kB -- -1 B
/components/autocomplete -- 100 kB -- -1 B
/components/avatars -- 9.16 kB -- -1 B
/components/backdrop -- 2.68 kB -- -1 B
/components/badges -- 15.5 kB -- -1 B
/components/bottom-navigation -- 6.27 kB -- -1 B
/components/box -- 8.05 kB -- -1 B
/components/breadcrumbs -- 14.7 kB -- -1 B
/components/button-group -- 7.43 kB -- -1 B
/components/buttons -- 26.2 kB -- -1 B
/components/cards -- 17.3 kB -- -1 B
/components/checkboxes -- 16.3 kB -- -1 B
/components/chips -- 21.8 kB -- -1 B
/components/click-away-listener -- 4.58 kB -- -1 B
/components/container -- 3.72 kB -- -1 B
/components/css-baseline -- 6.74 kB -- -1 B
/components/dialogs -- 42.8 kB -- -1 B
/components/dividers -- 12.8 kB -- -1 B
/components/drawers -- 31.5 kB -- -1 B
/components/expansion-panels -- 20.7 kB -- -1 B
/components/floating-action-button -- 10.6 kB -- -1 B
/components/grid-list -- 12.1 kB -- -1 B
/components/grid -- 32.4 kB -- -1 B
/components/hidden -- 10.6 kB -- -1 B
/components/icons -- 27.3 kB -- -1 B
/components/links -- 6.91 kB -- -1 B
/components/lists -- 26.7 kB -- -1 B
/components/material-icons -- 729 kB -- -1 B
/components/menus -- 24.9 kB -- -1 B
/components/modal -- 11.9 kB -- -1 B
/components/no-ssr -- 5.11 kB -- -1 B
/components/pagination -- 9.45 kB -- -1 B
/components/paper -- 3.49 kB -- -1 B
/components/popover -- 17.4 kB -- -1 B
/components/popper -- 23.4 kB -- -1 B
/components/portal -- 3 kB -- -1 B
/components/progress -- 20.3 kB -- -1 B
/components/radio-buttons -- 14.8 kB -- -1 B
/components/rating -- 10.8 kB -- -1 B
/components/selects -- 31.2 kB -- -1 B
/components/skeleton -- 10.2 kB -- -1 B
/components/slider -- 15.6 kB -- -1 B
/components/snackbars -- 27.8 kB -- -1 B
/components/speed-dial -- 14.6 kB -- -1 B
/components/steppers -- 36.6 kB -- -1 B
/components/switches -- 16.4 kB -- -1 B
/components/tables -- 143 kB -- -1 B
/components/text-fields -- 54.8 kB -- -1 B
/components/textarea-autosize -- 2.94 kB -- -1 B
/components/toggle-button -- 10.5 kB -- -1 B
/components/tooltips -- 17 kB -- -1 B
/components/transfer-list -- 9.68 kB -- -1 B
/components/transitions -- 12.1 kB -- -1 B
/components/tree-view -- 11.2 kB -- -1 B
/components/typography -- 9.92 kB -- -1 B
/components/use-media-query -- 12.9 kB -- -1 B
/customization/breakpoints -- 16 kB -- -1 B
/customization/color -- 20.9 kB -- -1 B
/customization/components -- 38.4 kB -- -1 B
/customization/default-theme -- 8.8 kB -- -1 B
/customization/density -- 9.76 kB -- -1 B
/customization/globals -- 4.72 kB -- -1 B
/customization/palette -- 14.1 kB -- -1 B
/customization/spacing -- 2.61 kB -- -1 B
/customization/theming -- 18.7 kB -- -1 B
/customization/typography -- 11.8 kB -- -1 B
/customization/z-index -- 3.13 kB -- -1 B
/discover-more/backers -- 3.04 kB -- -1 B
/discover-more/changelog -- 1.44 kB -- -1 B
/discover-more/languages -- 3.44 kB -- -1 B
/discover-more/related-projects -- 7.96 kB -- -1 B
/discover-more/roadmap -- 3.72 kB -- -1 B
/discover-more/showcase -- 13.4 kB -- -1 B
/discover-more/team -- 6.68 kB -- -1 B
/discover-more/vision -- 6.68 kB -- -1 B
/getting-started/example-projects -- 6.94 kB -- -1 B
/getting-started/faq -- 36.2 kB -- -1 B
/getting-started/installation -- 7.83 kB -- -1 B
/getting-started/learn -- 8.98 kB -- -1 B
/getting-started/support -- 9.15 kB -- -1 B
/getting-started/supported-components -- 6.7 kB -- -1 B
/getting-started/supported-platforms -- 5.84 kB -- -1 B
/getting-started/templates -- 8.91 kB -- -1 B
/getting-started/templates/album -- 5.59 kB -- -1 B
/getting-started/templates/blog -- 7.45 kB -- -1 B
/getting-started/templates/checkout -- 11.2 kB -- -1 B
/getting-started/templates/dashboard -- 8.87 kB -- -1 B
/getting-started/templates/pricing -- 7.8 kB -- -1 B
/getting-started/templates/sign-in-side -- 9.3 kB -- -1 B
/getting-started/templates/sign-in -- 9.54 kB -- -1 B
/getting-started/templates/sign-up -- 9.64 kB -- -1 B
/getting-started/templates/sticky-footer -- 1.54 kB -- -1 B
/getting-started/usage -- 9.58 kB -- -1 B
/guides/api -- 15.8 kB -- -1 B
/guides/composition -- 14.9 kB -- -1 B
/guides/flow -- 2.26 kB -- -1 B
/guides/interoperability -- 16.3 kB -- -1 B
/guides/localization -- 11.8 kB -- -1 B
/guides/migration-v0x -- 7.39 kB -- -1 B
/guides/migration-v3 -- 19.2 kB -- -1 B
/guides/minimizing-bundle-size -- 8.7 kB -- -1 B
/guides/responsive-ui -- 4.27 kB -- -1 B
/guides/right-to-left -- 6.77 kB -- -1 B
/guides/server-rendering -- 8.75 kB -- -1 B
/guides/testing -- 8.61 kB -- -1 B
/guides/typescript -- 15.1 kB -- -1 B
/performance/table-component -- 1.44 kB -- -1 B
/performance/table-hook -- 2.24 kB -- -1 B
/performance/table-mui -- 4.49 kB -- -1 B
/performance/table-raw -- 613 B -- -1 B
/performance/table-styled-components -- 2.6 kB -- -1 B
/premium-themes/onepirate -- 7.32 kB -- -1 B
/premium-themes/onepirate/forgot-password -- 1 kB -- -1 B
/premium-themes/onepirate/privacy -- 4.44 kB -- -1 B
/premium-themes/onepirate/sign-in -- 1.07 kB -- -1 B
/premium-themes/onepirate/sign-up -- 1.12 kB -- -1 B
/premium-themes/onepirate/terms -- 11.8 kB -- -1 B
/premium-themes/paperbase -- 8.96 kB -- -1 B
/styles/advanced -- 33.3 kB -- -1 B
/styles/api -- 16.9 kB -- -1 B
/styles/basics -- 16.5 kB -- -1 B
/system/api -- 5.96 kB -- -1 B
/system/basics -- 27.4 kB -- -1 B
/system/borders -- 4.1 kB -- -1 B
/system/display -- 6.55 kB -- -1 B
/system/flexbox -- 5.85 kB -- -1 B
/system/palette -- 4.35 kB -- -1 B
/system/positions -- 2.53 kB -- -1 B
/system/shadows -- 3.86 kB -- -1 B
/system/sizing -- 3.53 kB -- -1 B
/system/spacing -- 6.01 kB -- -1 B
/system/typography -- 4.41 kB -- -1 B
/versions -- 23.7 kB -- -1 B
docs:chunk:shared -- 61.7 kB -- -1 B
docs:shared:chunk/commons -- 5.99 kB -- -1 B
docs:shared:chunk/framework -- 42.3 kB -- -1 B
docs:shared:runtime/main -- 6.78 kB -- -1 B
docs:shared:runtime/webpack -- 1.24 kB -- -1 B
bundle Size Change Size Gzip Change Gzip
@material-ui/core -- 371 kB -- 102 kB
@material-ui/core[umd] -- 326 kB -- 95 kB
@material-ui/lab -- 217 kB -- 64.8 kB
@material-ui/styles -- 52.1 kB -- 15.6 kB
@material-ui/system -- 17.2 kB -- 4.52 kB
Alert -- 87.8 kB -- 27.8 kB
AlertTitle -- 69.1 kB -- 21.8 kB
AppBar -- 68.9 kB -- 21.7 kB
Autocomplete -- 136 kB -- 42.9 kB
Avatar -- 70 kB -- 22 kB
AvatarGroup -- 71.1 kB -- 22.6 kB
Backdrop -- 73.6 kB -- 22.8 kB
Badge -- 70.2 kB -- 22 kB
BottomNavigation -- 67.3 kB -- 21.1 kB
BottomNavigationAction -- 80 kB -- 25.4 kB
Box -- 73.8 kB -- 22.4 kB
Breadcrumbs -- 85 kB -- 27 kB
Button -- 84.2 kB -- 25.9 kB
ButtonBase -- 78.5 kB -- 24.7 kB
ButtonGroup -- 87.9 kB -- 27.2 kB
Card -- 67.7 kB -- 21.3 kB
CardActionArea -- 79.6 kB -- 25.2 kB
CardActions -- 66.9 kB -- 21 kB
CardContent -- 66.9 kB -- 21 kB
CardHeader -- 69.9 kB -- 22.1 kB
CardMedia -- 67.2 kB -- 21.2 kB
Checkbox -- 86.7 kB -- 27.5 kB
Chip -- 87.2 kB -- 26.8 kB
CircularProgress -- 69 kB -- 21.8 kB
ClickAwayListener -- 4.13 kB -- 1.65 kB
Collapse -- 74 kB -- 22.9 kB
colorManipulator -- 3.96 kB -- 1.55 kB
Container -- 68.1 kB -- 21.3 kB
CssBaseline -- 66.9 kB -- 21.1 kB
Dialog -- 88.7 kB -- 27.9 kB
DialogActions -- 67 kB -- 21.1 kB
DialogContent -- 67.1 kB -- 21.1 kB
DialogContentText -- 68.9 kB -- 21.7 kB
DialogTitle -- 69.2 kB -- 21.8 kB
Divider -- 67.6 kB -- 21.3 kB
docs:/ -- 12.1 kB -- -1 B
docs:/_app -- 37.2 kB -- -1 B
Drawer -- 90.8 kB -- 27.7 kB
ExpansionPanel -- 77.5 kB -- 24.5 kB
ExpansionPanelActions -- 67 kB -- 21 kB
ExpansionPanelDetails -- 66.9 kB -- 21 kB
ExpansionPanelSummary -- 82.6 kB -- 26.3 kB
Fab -- 81.3 kB -- 25.4 kB
Fade -- 29.4 kB -- 9.84 kB
FilledInput -- 78.7 kB -- 24.5 kB
FormControl -- 69.3 kB -- 21.6 kB
FormControlLabel -- 70.4 kB -- 22.2 kB
FormGroup -- 66.9 kB -- 21 kB
FormHelperText -- 68.2 kB -- 21.2 kB
FormLabel -- 68.4 kB -- 21.2 kB
Grid -- 70 kB -- 22.1 kB
GridList -- 67.4 kB -- 21.2 kB
GridListTile -- 68.6 kB -- 21.6 kB
GridListTileBar -- 68.1 kB -- 21.4 kB
Grow -- 30 kB -- 10.1 kB
Hidden -- 70.9 kB -- 22.3 kB
Icon -- 67.7 kB -- 21.2 kB
IconButton -- 80.6 kB -- 25.3 kB
Input -- 77.6 kB -- 24.3 kB
InputAdornment -- 70 kB -- 22.1 kB
InputBase -- 75.7 kB -- 23.8 kB
InputLabel -- 70.2 kB -- 21.7 kB
LinearProgress -- 70.2 kB -- 21.8 kB
Link -- 71.5 kB -- 22.7 kB
List -- 67.2 kB -- 21 kB
ListItem -- 81.6 kB -- 25.6 kB
ListItemAvatar -- 67 kB -- 21 kB
ListItemIcon -- 67.1 kB -- 21.1 kB
ListItemSecondaryAction -- 66.9 kB -- 21 kB
ListItemText -- 69.9 kB -- 22 kB
ListSubheader -- 67.7 kB -- 21.3 kB
Menu -- 94.4 kB -- 29.2 kB
MenuItem -- 82.7 kB -- 26 kB
MenuList -- 70.9 kB -- 22.2 kB
MobileStepper -- 72.7 kB -- 22.9 kB
Modal -- 15 kB -- 5.25 kB
NativeSelect -- 81.9 kB -- 26 kB
NoSsr -- 2.18 kB -- 1.03 kB
OutlinedInput -- 79.7 kB -- 24.9 kB
Pagination -- 89 kB -- 27.5 kB
PaginationItem -- 85.3 kB -- 26.4 kB
Paper -- 67.2 kB -- 21 kB
Popover -- 88.7 kB -- 27.5 kB
Popper -- 28.8 kB -- 10.3 kB
Portal -- 2.87 kB -- 1.29 kB
Radio -- 87.7 kB -- 27.9 kB
RadioGroup -- 68.8 kB -- 21.4 kB
Rating -- 75.7 kB -- 24.4 kB
RootRef -- 4.64 kB -- 1.76 kB
ScopedCssBaseline -- 67.8 kB -- 21.3 kB
Select -- 122 kB -- 36.4 kB
Skeleton -- 67.9 kB -- 21.5 kB
Slide -- 31.1 kB -- 10.3 kB
Slider -- 80.9 kB -- 25.9 kB
Snackbar -- 81.5 kB -- 25.7 kB
SnackbarContent -- 68.4 kB -- 21.6 kB
SpeedDial -- 91.6 kB -- 29.1 kB
SpeedDialAction -- 123 kB -- 39.3 kB
SpeedDialIcon -- 69.4 kB -- 21.9 kB
Step -- 67.6 kB -- 21.2 kB
StepButton -- 86.8 kB -- 27.5 kB
StepConnector -- 67.6 kB -- 21.3 kB
StepContent -- 75.1 kB -- 23.6 kB
StepIcon -- 69.5 kB -- 21.7 kB
StepLabel -- 73.4 kB -- 22.8 kB
Stepper -- 69.8 kB -- 22 kB
styles/createMuiTheme -- 22.4 kB -- 7.75 kB
SvgIcon -- 67.9 kB -- 21.2 kB
SwipeableDrawer -- 98.2 kB -- 30.9 kB
Switch -- 85.9 kB -- 27.1 kB
Tab -- 81 kB -- 25.8 kB
TabContext -- 2.65 kB -- 1.15 kB
Table -- 67.5 kB -- 21.2 kB
TableBody -- 67 kB -- 21 kB
TableCell -- 69 kB -- 21.8 kB
TableContainer -- 66.9 kB -- 21 kB
TableFooter -- 67 kB -- 21 kB
TableHead -- 67 kB -- 21 kB
TablePagination -- 148 kB -- 43.8 kB
TableRow -- 67.4 kB -- 21.2 kB
TableSortLabel -- 81.9 kB -- 26.1 kB
TabList -- 91.8 kB -- 29.4 kB
TabPanel -- 70 kB -- 22 kB
Tabs -- 90.6 kB -- 28.4 kB
TabScrollButton -- 81.5 kB -- 25.6 kB
TextareaAutosize -- 5.24 kB -- 2.19 kB
TextField -- 131 kB -- 38.5 kB
ToggleButton -- 80.6 kB -- 25.6 kB
ToggleButtonGroup -- 67.7 kB -- 21.3 kB
Toolbar -- 67.2 kB -- 21.2 kB
Tooltip -- 107 kB -- 34 kB
TreeItem -- 80.9 kB -- 25.8 kB
TreeView -- 73.4 kB -- 23.1 kB
Typography -- 68.5 kB -- 21.4 kB
useAutocomplete -- 15 kB -- 5.28 kB
useMediaQuery -- 2.57 kB -- 1.06 kB
useScrollTrigger -- 2.66 kB -- 1.08 kB
Zoom -- 29.4 kB -- 9.97 kB

Generated by 🚫 dangerJS against 426d177

import Typography from '@material-ui/core/Typography';
import Box from '@material-ui/core/Box';

function TabPanel(props) {
Copy link
Member

@oliviertassinari oliviertassinari May 9, 2020

Choose a reason for hiding this comment

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

Should it use the lab API instead? I will help to gain more feedback.

Copy link
Member Author

Choose a reason for hiding this comment

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

I lean more towards this now, yes. For a11y attributes on the stable API we can refer to the previous demos.

### Keyboard navigation

The components implement keyboard navigation using the "manual activation" behavior. If you want to switch to the
"selection automatically follows focus" behavior you have pass `selectionFollowsFocus` to the `Tabs` component. The WAI-ARIA authoring practices have a detailed guide on [how to decide then to make selection automatically follow focus](https://www.w3.org/TR/wai-aria-practices/#kbd_selection_follows_focus).
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
"selection automatically follows focus" behavior you have pass `selectionFollowsFocus` to the `Tabs` component. The WAI-ARIA authoring practices have a detailed guide on [how to decide then to make selection automatically follow focus](https://www.w3.org/TR/wai-aria-practices/#kbd_selection_follows_focus).
"selection automatically follows focus" behavior you have pass `selectionFollowsFocus` to the `Tabs` component. The WAI-ARIA authoring practices have a detailed guide on [how to decide when to make selection automatically follow focus](https://www.w3.org/TR/wai-aria-practices/#kbd_selection_follows_focus).

To which the answer seems to be "always", since there should be no reason why an asynchronous network request for tabpanel content should block tab navigation.

I recall a comment that the default for v5 is up for discussion, and that current behaviour is retained to avoid a breaking change, but I think the wording in this section should more strongly advocate the use of this prop.

Copy link
Member Author

Choose a reason for hiding this comment

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

Right now I would agree with this. However, it's likely that this could be harmful for certain UIs. I think promise cancellation isn't a thing right now. Automatic activation could kick of a bunch of network requests that each have the same priority. You'd switch 5 tabs and now the first 4 tabs are starving the fifth request.

There's also the issue of render-blocking. Keyboard navigation is user-input and therefore any slight lag is noticed immediately. Since concurrent react is not stable yet, switching could introduce a sluggish UI if the corresponding panel takes more than 16ms to render.

It's a tough decission. I'd say in concurrent react (and if the Offscreen API lands) selectionFollowsFocus is better for UX. Everyone else should test this in production first.

We can extend the section a bit more with things to consider (too many requests, render blocking etc).

Copy link
Member

Choose a reason for hiding this comment

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

Good points well made, thanks!

docs/src/pages/components/tabs/tabs.md Outdated Show resolved Hide resolved
docs/src/pages/components/tabs/tabs.md Outdated Show resolved Hide resolved
docs/src/pages/components/tabs/tabs.md Outdated Show resolved Hide resolved
Co-authored-by: Olivier Tassinari <olivier.tassinari@gmail.com>
Co-authored-by: Matt <github@nospam.33m.co>
@eps1lon eps1lon requested a review from mbrookes May 11, 2020 11:24
@oliviertassinari
Copy link
Member

What do you guys think about this layout?

Capture d’écran 2020-05-11 à 22 41 35

The incentives being:

  • move the description out of the demo to help with translations
  • try to create a code correspondence with the demo so people can quickly identify how they can apply the behavior in their app
  • reduce the number of headers, to make the content easier to follow
the diff
diff --git a/docs/src/pages/components/tabs/AccessibleTabs.tsx b/docs/src/pages/components/tabs/AccessibleTabs.tsx
index aa55fa51c..24053867c 100644
--- a/docs/src/pages/components/tabs/AccessibleTabs.tsx
+++ b/docs/src/pages/components/tabs/AccessibleTabs.tsx
@@ -1,5 +1,5 @@
 import React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
+import { makeStyles, Theme, createStyles } from '@material-ui/core/styles';
 import AppBar from '@material-ui/core/AppBar';
 import Tabs from '@material-ui/core/Tabs';
 import Tab from '@material-ui/core/Tab';
@@ -33,18 +33,16 @@ function TabPanel(props: TabPanelProps) {
 }

 interface DemoTabsProps {
-  labelId: string;
   onChange: (event: unknown, value: number) => void;
   selectionFollowsFocus?: boolean;
   value: number;
 }
 function DemoTabs(props: DemoTabsProps) {
-  const { labelId, onChange, selectionFollowsFocus, value } = props;
+  const { onChange, selectionFollowsFocus, value } = props;

   return (
     <AppBar position="static">
       <Tabs
-        aria-labelledby={labelId}
         onChange={onChange}
         selectionFollowsFocus={selectionFollowsFocus}
         value={value}
@@ -57,11 +55,12 @@ function DemoTabs(props: DemoTabsProps) {
   );
 }

-const useStyles = makeStyles({
+const useStyles = makeStyles((theme: Theme) => createStyles({
   root: {
     flexGrow: 1,
+    backgroundColor: theme.palette.background.paper,
   },
-});
+}));

 export default function AccessibleTabs() {
   const classes = useStyles();
@@ -73,19 +72,13 @@ export default function AccessibleTabs() {

   return (
     <div className={classes.root}>
-      <Typography id="demo-a11y-tabs-automatic-label">
-        Tabs where selection follows focus
-      </Typography>
       <DemoTabs
-        labelId="demo-a11y-tabs-automatic-label"
         selectionFollowsFocus
         onChange={handleChange}
         value={value}
       />
-      <Typography id="demo-a11y-tabs-manual-label">
-        Tabs where each tab needs to be selected manually
-      </Typography>
-      <DemoTabs labelId="demo-a11y-tabs-manual-label" onChange={handleChange} value={value} />
+      <br />
+      <DemoTabs onChange={handleChange} value={value} />
       <TabPanel value={value} index={0}>
         Item One
       </TabPanel>
diff --git a/docs/src/pages/components/tabs/tabs.md b/docs/src/pages/components/tabs/tabs.md
index 41e0a6759..d79931599 100644
--- a/docs/src/pages/components/tabs/tabs.md
+++ b/docs/src/pages/components/tabs/tabs.md
@@ -101,22 +101,26 @@ The following steps are needed in order to provide necessary information for ass
 2. `Tab`s need to be connected to their
    corresponding `[role="tabpanel"]` by setting the correct `id`, `aria-controls` and `aria-labelledby`.

-An example for the current implementation can be found in the demos on this page. We've also published an experimental API in `@material-ui/lab` that does not require
-extra work.
+An example for the current implementation can be found in the demos on this page. We've also published [an experimental API](#experimental-api) in the lab that does not require extra work.

 ### Keyboard navigation

 The components implement keyboard navigation using the "manual activation" behavior. If you want to switch to the
 "selection automatically follows focus" behavior you have pass `selectionFollowsFocus` to the `Tabs` component. The WAI-ARIA authoring practices have a detailed guide on [how to decide when to make selection automatically follow focus](https://www.w3.org/TR/wai-aria-practices/#kbd_selection_follows_focus).

-#### `selectionFollowsFocus` Demo
-
 The following two demos only differ in their keyboard navigation behavior.
 Focus a tab and navigate with arrow keys to notice the difference.

-{{"demo": "pages/components/tabs/AccessibleTabs.js", "bg": true}}
+```jsx
+/* 1. Tabs where selection follows focus */
+<Tabs selectionFollowsFocus />
+/* 2. Tabs where each tab needs to be selected manually */
+<Tabs />
+```
+
+{{"demo": "pages/components/tabs/AccessibleTabs.js", "bg": true, "defaultCodeOpen": false}}

-## Experimental Tabs API
+## Experimental API

 `@material-ui/lab` offers utility components that inject props to implement accessible tabs
 following [WAI-ARIA authoring practices](https://www.w3.org/TR/wai-aria-practices/#tabpanel).

@eps1lon
Copy link
Member Author

eps1lon commented May 11, 2020

try to create a code correspondence with the demo so people can quickly identify how they can apply the behavior in their app

Already there by naming the prop

reduce the number of headers, to make the content easier to follow

Post-hoc rationalization. Headers don't make content harder to follow. Their purpose is to structure content.

move the description out of the demo to help with translations

Not a priority. It's more important to move description and behavior as close as possible together rather than backreference.

@eps1lon eps1lon merged commit 3bc1e2d into mui:master May 12, 2020
@eps1lon eps1lon deleted the docs/a11y-tabs branch May 12, 2020 07:34
selectionFollowsFocus={selectionFollowsFocus}
value={value}
>
<Tab label="Item One" aria-controls="simple-tabpanel-0" id="simple-tab-0" />
Copy link
Member

Choose a reason for hiding this comment

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

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

Successfully merging this pull request may close these issues.

[Tabs] Implement arrow keyboard
4 participants