WordPress.org

Make WordPress Core

Ticket #23560: 23560.3.diff

File 23560.3.diff, 5.1 KB (added by lessbloat, 5 years ago)
  • wp-includes/js/media-views.js

     
    19741974                        if ( ! this.views.attached || ! this.$el.is(':visible') )
    19751975                                return this;
    19761976
    1977                         this.$el.hide();
     1977                        // Hide modal and remove restricted media modal tab focus once it's closed
     1978                        this.$el.hide().undelegate( 'keydown' );
     1979
     1980                        // Put focus back in useful location once modal is closed
     1981                        $('#wpbody-content').focus();
     1982
    19781983                        this.propagate('close');
    19791984
    19801985                        // If the `freeze` option is set, restore the container's scroll position.
     
    20202025                                this.escape();
    20212026                                return;
    20222027                        }
     2028
     2029                        // Keep tab focus within media modal while it's open
     2030                        if ( $.ui.keyCode.TAB !== event.keyCode )
     2031                                return;
     2032
     2033                        var tabbables = $( ':tabbable', this.$el ),
     2034                                first = tabbables.filter( ':first' ),
     2035                                last  = tabbables.filter( ':last' );
     2036
     2037                        if ( event.target === last[0] && !event.shiftKey ) {
     2038                                first.focus();
     2039                                return false;
     2040                        } else if ( event.target === first[0] && event.shiftKey ) {
     2041                                last.focus();
     2042                                return false;
     2043                        }
    20232044                }
    20242045        });
    20252046
     
    28282849                className: 'attachment',
    28292850                template:  media.template('attachment'),
    28302851
     2852                attributes: {
     2853                        tabIndex: 0,
     2854                        role: 'checkbox'
     2855                },
     2856
    28312857                events: {
    28322858                        'click .attachment-preview':      'toggleSelectionHandler',
    28332859                        'change [data-setting]':          'updateSetting',
     
    28362862                        'change [data-setting] textarea': 'updateSetting',
    28372863                        'click .close':                   'removeFromLibrary',
    28382864                        'click .check':                   'removeFromSelection',
    2839                         'click a':                        'preventDefault'
     2865                        'click a':                        'preventDefault',
     2866                        'keydown':                                                'toggleSelectionHandler'
    28402867                },
    28412868
    28422869                buttons: {},
     
    28442871                initialize: function() {
    28452872                        var selection = this.options.selection;
    28462873
     2874                        this.$el.attr('aria-label', this.model.attributes.title).attr('aria-checked', false);
     2875
    28472876                        this.model.on( 'change:sizes change:uploading', this.render, this );
    28482877                        this.model.on( 'change:title', this._syncTitle, this );
    28492878                        this.model.on( 'change:caption', this._syncCaption, this );
     
    29342963                toggleSelectionHandler: function( event ) {
    29352964                        var method;
    29362965
     2966                        if ( 'keydown' === event.type && $.ui.keyCode.ENTER !== event.keyCode && $.ui.keyCode.SPACE !== event.keyCode )
     2967                                return;
     2968
    29372969                        if ( event.shiftKey )
    29382970                                method = 'between';
    29392971                        else if ( event.ctrlKey || event.metaKey )
     
    30173049                        if ( ! selection || ( collection && collection !== selection ) )
    30183050                                return;
    30193051
    3020                         this.$el.addClass('selected');
     3052                        this.$el.addClass('selected').attr('aria-checked', true);
    30213053                },
    30223054
    30233055                deselect: function( model, collection ) {
     
    30293061                        if ( ! selection || ( collection && collection !== selection ) )
    30303062                                return;
    30313063
    3032                         this.$el.removeClass('selected');
     3064                        this.$el.removeClass('selected').attr('aria-checked', false);
    30333065                },
    30343066
    30353067                details: function( model, collection ) {
     
    32113243                tagName:   'ul',
    32123244                className: 'attachments',
    32133245
     3246                attributes: {
     3247                        tabIndex: -1
     3248                },
     3249
    32143250                cssTemplate: media.template('attachments-css'),
    32153251
    32163252                events: {
  • wp-includes/media-template.php

     
    1515function wp_print_media_templates() {
    1616        global $is_IE;
    1717        $class = 'media-modal wp-core-ui';
     18        if ( $is_IE )
     19                $class .= ' isIE';
    1820        if ( $is_IE && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 7') !== false )
    1921                $class .= ' ie7';
    2022        ?>
     
    134136                        <# } else if ( 'image' === data.type ) { #>
    135137                                <div class="thumbnail">
    136138                                        <div class="centered">
    137                                                 <img src="{{ data.size.url }}" draggable="false" />
     139                                                <img src="{{ data.size.url }}" draggable="false" alt="" />
    138140                                        </div>
    139141                                </div>
    140142                        <# } else { #>
     
    149151                        <# } #>
    150152
    151153                        <# if ( data.buttons.check ) { #>
    152                                 <a class="check" href="#" title="<?php _e('Deselect'); ?>"><div class="media-modal-icon"></div></a>
     154                                <a class="check" href="#" title="<?php _e('Deselect'); ?>" tabindex="-1"><div class="media-modal-icon"></div></a>
    153155                        <# } #>
    154156                </div>
    155157                <#
  • wp-includes/css/media-views.css

     
    431431        border-right: 0;
    432432}
    433433
    434 .media-router > a:active,
    435 .media-router > a:focus {
     434.media-router > a:active {
    436435        outline: none;
    437436}
    438437
     
    635634        user-select:         none;
    636635}
    637636
     637.attachment:focus {
     638        box-shadow: 0px 0px 2pt 2pt #1e8cbe;
     639        outline: none;
     640}
     641
     642.isIE .attachment:focus {
     643        outline: #1e8cbe solid;
     644}
     645
    638646.selected.attachment {
    639647        box-shadow:
    640648                0 0 0 1px #fff,
    641649                0 0 0 3px #ccc;
    642650}
    643651
     652.isIE .attachment.selected {
     653        outline: #1e8cbe solid;
     654}
     655
    644656.details.attachment {
    645657        box-shadow:
    646658                0 0 0 1px #fff,
     
    864876        right: 300px;
    865877        bottom: 0;
    866878        overflow: auto;
     879        outline: none;
    867880}
    868881
    869882.attachments-browser .instructions {