Make WordPress Core


Ignore:
Timestamp:
11/04/2016 04:01:24 PM (8 years ago)
Author:
jorbin
Message:

Administration: Ensure collapse menu is usable with a keyboard

Currently, the "Collapse menu" item is not focusable and keyboard users can't collapse/expand the admin menu. This aims to fix it so that screen readers no longer announce it as a clickable but it remains unfocusable and thus unusable. So it's now a button.

Quoting joedolson at WordCamp Chicago 2014:
"If it's supposed to act like a button, it should be a button."

Also includes a grunt:precommit run that picked up some postcss changes to src/wp-includes/css/customize-preview.css

Fixes #29958.
Props ajercia, ipm-frommen for an iterative patch, valendesigns for an iterative patch, GaryJ for feedback, joedolson for feedback, helen for feedback

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/css/admin-menu.css

    r37365 r39141  
    265265.folded #adminmenu a.menu-top:focus + .wp-submenu,
    266266.folded #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu,
    267 .no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu  {
     267.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu {
    268268    top: 0;
    269269    left: 36px;
     
    548548}
    549549
    550 #collapse-menu {
    551     font-size: 13px;
     550#collapse-button {
     551    display: block;
     552    width: 100%;
     553    height: 34px;
     554    margin: 0;
     555    border: none;
     556    padding: 0;
     557    position: relative;
     558    overflow: visible;
    552559    line-height: 34px;
    553     margin-top: 10px;
    554     color: #a0a5aa;
    555     color: rgba(240,245,250,0.6);
    556     -webkit-transition: all .1s ease-in-out;
    557     transition: all .1s ease-in-out;
    558 }
    559 
    560 #collapse-menu:hover,
    561 #collapse-menu:hover #collapse-button div:after {
     560    background: none;
     561    color: #aaa;
     562    cursor: pointer;
     563    outline: 0;
     564}
     565
     566#collapse-button:hover,
     567#collapse-button:focus {
    562568    color: #00b9eb;
    563569}
    564570
    565 .folded #collapse-menu span {
     571#collapse-button .collapse-button-icon,
     572#collapse-button .collapse-button-label {
     573    /* absolutely positioned to avoid 1px shift in IE when button is pressed */
     574    display: block;
     575    position: absolute;
     576    top: 0;
     577    left: 0;
     578    line-height: 34px;
     579}
     580
     581#collapse-button .collapse-button-icon {
     582    width: 36px;
     583    height: 34px;
     584}
     585
     586#collapse-button .collapse-button-label {
     587    padding: 0 0 0 36px;
     588}
     589
     590.folded #collapse-button .collapse-button-label {
    566591    display: none;
    567592}
    568593
    569 #collapse-button,
    570 #collapse-button div {
    571     width: 15px;
    572     height: 15px;
    573 }
    574 
    575 #collapse-button {
    576     float: left;
    577     height: 15px;
    578     margin: 10px 8px 10px 11px;
    579     width: 15px;
    580     -webkit-border-radius: 10px;
    581     border-radius: 10px;
    582 }
    583 
    584 #wpwrap #collapse-button div {
    585     padding: 0;
    586 }
    587 
    588 #collapse-button div:after {
     594#collapse-button .collapse-button-icon:after {
    589595    content: "\f148";
    590596    display: block;
    591     line-height: 15px;
    592     left: -3px;
    593     top: -3px;
    594     color: #a0a5aa;
    595     color: rgba(240,245,250,0.6);
     597    position: relative;
     598    top: 7px;
     599    text-align: center;
    596600    font: normal 20px/1 dashicons !important;
    597601    speak: none;
    598     margin: 0 auto;
    599     padding: 0 !important;
    600     position: relative;
    601     text-align: center;
    602     width: 20px;
    603     -webkit-transition: all .1s ease-in-out;
    604     transition: all .1s ease-in-out;
    605602    -webkit-font-smoothing: antialiased;
    606603    -moz-osx-font-smoothing: grayscale;
     
    608605
    609606/* rtl:ignore */
    610 .folded #collapse-button div:after,
    611 .rtl #collapse-button div:after {
     607.folded #collapse-button .collapse-button-icon:after,
     608.rtl #collapse-button .collapse-button-icon:after {
    612609    -webkit-transform: rotate(180deg);
    613610    -ms-transform: rotate(180deg);
     
    615612}
    616613
    617 .rtl.folded #collapse-button div:after {
     614.rtl.folded #collapse-button .collapse-button-icon:after {
    618615    -webkit-transform: none;
    619616    -ms-transform: none;
    620617    transform: none;
     618}
     619
     620#collapse-button .collapse-button-icon:after,
     621#collapse-button .collapse-button-label {
     622    -webkit-transition: all .1s ease-in-out;
     623    transition: all .1s ease-in-out;
    621624}
    622625
     
    653656    .auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,
    654657    .auto-fold #adminmenu a.menu-top:focus + .wp-submenu,
    655     .auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu  {
     658    .auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu {
    656659        top: 0px;
    657660        left: 36px;
     
    732735    }
    733736
    734     .auto-fold #collapse-menu span {
     737    .auto-fold #collapse-menu .collapse-button-label {
    735738        display: none;
    736739    }
    737740
    738     .auto-fold #collapse-button div {
    739         background: none;
    740     }
    741 
    742741    /* rtl:ignore */
    743     .auto-fold #collapse-button div:after {
     742    .auto-fold #collapse-button .collapse-button-icon:after {
    744743        -webkit-transform: rotate(180deg);
    745744        -ms-transform: rotate(180deg);
     
    747746    }
    748747
    749     .rtl.auto-fold #collapse-button div:after {
     748    .rtl.auto-fold #collapse-button .collapse-button-icon:after {
    750749        -webkit-transform: none;
    751750        -ms-transform: none;
Note: See TracChangeset for help on using the changeset viewer.