WordPress.org

Make WordPress Core

Ticket #23560: 23560.27.diff

File 23560.27.diff, 3.1 KB (added by gcorne, 5 years ago)
  • src/wp-includes/js/media-views.js

    diff --git src/wp-includes/js/media-views.js src/wp-includes/js/media-views.js
    index fa8a7c7..669c11e 100644
     
    25042504
    25052505                                                // Keep focus inside media modal
    25062506                                                // after canceling a gallery
    2507                                                 new media.view.FocusManager({
    2508                                                         el: this.el
    2509                                                 }).focus();
     2507                                                this.controller.modal.focusManager.focus();
    25102508                                        }
    25112509                                },
    25122510                                separateCancel: new media.View({
     
    26952693
    26962694                                        // Keep focus inside media modal
    26972695                                        // after jumping to gallery view
    2698                                         new media.view.FocusManager({
    2699                                                 el: this.el
    2700                                         }).focus();
     2696                                        this.controller.modal.focusManager.focus();
    27012697                                }
    27022698                        });
    27032699                },
     
    27272723
    27282724                                        // Keep focus inside media modal
    27292725                                        // after jumping to playlist view
    2730                                         new media.view.FocusManager({
    2731                                                 el: this.el
    2732                                         }).focus();
     2726                                        this.controller.modal.focusManager.focus();
    27332727                                }
    27342728                        });
    27352729                },
     
    27592753
    27602754                                        // Keep focus inside media modal
    27612755                                        // after jumping to video playlist view
    2762                                         new media.view.FocusManager({
    2763                                                 el: this.el
    2764                                         }).focus();
     2756                                        this.controller.modal.focusManager.focus();
    27652757                                }
    27662758                        });
    27672759                },
     
    33573349         * @augments Backbone.View
    33583350         */
    33593351        media.view.FocusManager = media.View.extend({
     3352
    33603353                events: {
    3361                         keydown: 'recordTab',
    3362                         focusin: 'updateIndex'
     3354                        'keydown': 'constrainTabbing'
    33633355                },
    33643356
    3365                 focus: function() {
    3366                         // Reset focus on first left menu item
    3367                         $('.media-menu-item').first().focus();
     3357                focus: function() { // Reset focus on first left menu item
     3358                        this.$('.media-menu-item').first().focus();
    33683359                },
    33693360                /**
    33703361                 * @param {Object} event
    33713362                 */
    3372                 recordTab: function( event ) {
     3363                constrainTabbing: function( event ) {
     3364                        var tabbables;
     3365
    33733366                        // Look for the tab key.
    33743367                        if ( 9 !== event.keyCode ) {
    33753368                                return;
    33763369                        }
    33773370
     3371                        tabbables = this.$( ':tabbable' );
     3372
    33783373                        // Keep tab focus within media modal while it's open
    3379                         if ( event.target === this.tabbableLast[0] && !event.shiftKey ) {
    3380                                 this.tabbableFirst.focus();
     3374                        if ( tabbables.last()[0] === event.target && ! event.shiftKey ) {
     3375                                tabbables.first().focus();
    33813376                                return false;
    3382                         } else if ( event.target === this.tabbableFirst[0] && event.shiftKey ) {
    3383                                 this.tabbableLast.focus();
     3377                        } else if ( tabbables.first()[0] === event.target && event.shiftKey ) {
     3378                                tabbables.last().focus();
    33843379                                return false;
    33853380                        }
    3386                 },
    3387                 /**
    3388                  * @param {Object} event
    3389                  */
    3390                 updateIndex: function() {
    3391                         // Resets tabbable elements
    3392                         this.tabbables = $( ':tabbable', this.$el );
    3393                         this.tabbableFirst = this.tabbables.filter( ':first' );
    3394                         this.tabbableLast = this.tabbables.filter( ':last' );
    33953381                }
     3382
    33963383        });
    33973384
    33983385        /**
     
    61716158
    61726159                        // Keep focus inside media modal
    61736160                        // after clear link is selected
    6174                         new media.view.FocusManager({
    6175                                 el: this.el
    6176                         }).focus();
     6161                        this.controller.modal.focusManager.focus();
    61776162                }
    61786163        });
    61796164
     
    65266511                                this.model.destroy();
    65276512                                // Keep focus inside media modal
    65286513                                // after image is deleted
    6529                                 new media.view.FocusManager({
    6530                                         el: this.el
    6531                                 }).focus();
     6514                                this.controller.modal.focusManager.focus();
    65326515                        }
    65336516                },
    65346517                /**