12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /**
- * @file
- * A Backbone View that provides the aural view of a contextual link.
- */
- (function(Drupal, Backbone) {
- 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(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() {
- const 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);
|