Make WordPress Core

Ticket #31336: 31336.follow-up.diff

File 31336.follow-up.diff, 3.0 KB (added by celloexpressions, 9 years ago)

Fix accessibility: focus and tweak tabindex in the proper place, properly hide hidden elements. Also fixes scrollbars.

  • src/wp-admin/css/customize-controls.css

     
    493493        transition: left 0s;
    494494}
    495495
     496.wp-full-overlay.section-open #customize-controls .wp-full-overlay-sidebar-content {
     497        visibility: hidden;
     498        overflow-y: hidden;
     499}
     500
     501.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open {
     502        visibility: visible;
     503}
     504
     505.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open .accordion-section-content {
     506        overflow-y: auto;
     507}
     508
    496509p.customize-section-description {
    497510        font-style: normal;
    498511        margin-top: 22px;
  • src/wp-admin/js/customize-controls.js

     
    524524                 * @since 4.1.0
    525525                 */
    526526                attachEvents: function () {
    527                         var section = this,
    528                                 backBtn = section.container.find( '.customize-section-back' ),
    529                                 sectionTitle = section.container.find( '.accordion-section-title' ).first();
     527                        var section = this;
    530528
    531529                        // Expand/Collapse accordion sections on click.
    532530                        section.container.find( '.accordion-section-title, .customize-section-back' ).on( 'click keydown', function( event ) {
     
    537535
    538536                                if ( section.expanded() ) {
    539537                                        section.collapse();
    540                                         backBtn.attr( 'tabindex', '-1' );
    541                                         sectionTitle.attr( 'tabindex', '0' );
    542                                         sectionTitle.focus();
    543538                                } else {
    544539                                        section.expand();
    545                                         sectionTitle.attr( 'tabindex', '-1' );
    546                                         backBtn.attr( 'tabindex', '0' );
    547                                         backBtn.focus();
    548540                                }
    549541                        });
    550542                },
     
    592584                                container = section.container.closest( '.wp-full-overlay-sidebar-content' ),
    593585                                content = section.container.find( '.accordion-section-content' ),
    594586                                overlay = section.container.closest( '.wp-full-overlay' ),
     587                                backBtn = section.container.find( '.customize-section-back' ),
     588                                sectionTitle = section.container.find( '.accordion-section-title' ).first(),
    595589                                expand;
    596590
    597591                        if ( expanded && ! section.container.hasClass( 'open' ) ) {
     
    606600                                                position = content.offset().top;
    607601                                                scroll = container.scrollTop();
    608602                                                content.css( 'margin-top', ( 45 - position - scroll ) );
     603                                                content.css( 'height', ( window.innerHeight - 90 ) );
     604                                                sectionTitle.attr( 'tabindex', '-1' );
     605                                                backBtn.attr( 'tabindex', '0' );
     606                                                backBtn.focus();
    609607                                                if ( args.completeCallback ) {
    610608                                                        args.completeCallback();
    611609                                                }
     
    634632                                overlay.removeClass( 'section-open' );
    635633                                content.css( 'margin-top', 'inherit' );
    636634                                container.scrollTop( 0 );
    637                                 section.container.find( '.accordion-section-title' ).focus();
     635                                backBtn.attr( 'tabindex', '-1' );
     636                                sectionTitle.attr( 'tabindex', '0' );
     637                                sectionTitle.focus();
    638638                                if ( args.completeCallback ) {
    639639                                        args.completeCallback();
    640640                                }