/** * @file * A Backbone View that provides the aural view of a contextual link. */ (function (Drupal, Backbone) { 'use strict'; Drupal.contextual.AuralView = Backbone.View.extend(/** @lends Drupal.contextual.AuralView# */{ /** * Renders the aural view of a contextual link (i.e. screen reader support). * * @constructs * * @augments Backbone.View * * @param {object} options * Options for the view. */ initialize: function (options) { this.options = options; this.listenTo(this.model, 'change', this.render); // Use aria-role form so that the number of items in the list is spoken. this.$el.attr('role', 'form'); // Initial render. this.render(); }, /** * @inheritdoc */ render: function () { var isOpen = this.model.get('isOpen'); // Set the hidden property of the links. this.$el.find('.contextual-links') .prop('hidden', !isOpen); // Update the view of the trigger. this.$el.find('.trigger') .text(Drupal.t('@action @title configuration options', { '@action': (!isOpen) ? this.options.strings.open : this.options.strings.close, '@title': this.model.get('title') })) .attr('aria-pressed', isOpen); } }); })(Drupal, Backbone);