Mercurial > hg > isophonics-drupal-site
view core/modules/contextual/js/toolbar/views/AuralView.js @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 1fec387a4317 |
children |
line wrap: on
line source
/** * DO NOT EDIT THIS FILE. * See the following change record for more information, * https://www.drupal.org/node/2815083 * @preserve **/ (function ($, Drupal, Backbone, _) { Drupal.contextualToolbar.AuralView = Backbone.View.extend({ announcedOnce: false, initialize: function initialize(options) { this.options = options; this.listenTo(this.model, 'change', this.render); this.listenTo(this.model, 'change:isViewing', this.manageTabbing); $(document).on('keyup', _.bind(this.onKeypress, this)); this.manageTabbing(); }, render: function render() { this.$el.find('button').attr('aria-pressed', !this.model.get('isViewing')); return this; }, manageTabbing: function manageTabbing() { var tabbingContext = this.model.get('tabbingContext'); if (tabbingContext) { if (tabbingContext.active) { Drupal.announce(this.options.strings.tabbingReleased); } tabbingContext.release(); } if (!this.model.get('isViewing')) { tabbingContext = Drupal.tabbingManager.constrain($('.contextual-toolbar-tab, .contextual')); this.model.set('tabbingContext', tabbingContext); this.announceTabbingConstraint(); this.announcedOnce = true; } }, announceTabbingConstraint: function announceTabbingConstraint() { var strings = this.options.strings; Drupal.announce(Drupal.formatString(strings.tabbingConstrained, { '@contextualsCount': Drupal.formatPlural(Drupal.contextual.collection.length, '@count contextual link', '@count contextual links') })); Drupal.announce(strings.pressEsc); }, onKeypress: function onKeypress(event) { if (!this.announcedOnce && event.keyCode === 9 && !this.model.get('isViewing')) { this.announceTabbingConstraint(); this.announcedOnce = true; } if (event.keyCode === 27) { this.model.set('isViewing', true); } } }); })(jQuery, Drupal, Backbone, _);