h5p-lib-controls
Version:
Library for adding user input to web applications
44 lines (41 loc) • 908 B
JavaScript
import {setAttribute, removeAttribute} from '../utils/elements';
export default class Choice {
constructor(){
/**
* @type {function}
* @param {HTMLElement} el
*/
this.removeAriaSelected = removeAttribute('aria-selected');
/**
* @type {function}
* @param {HTMLElement} el
*/
this.addAriaSelected = setAttribute('aria-selected', 'true');
}
/**
* Inits this class
*
* @param {Controls} controls
*/
init(controls) {
/**
* @type {Controls}
*/
this.controls = controls;
this.controls.on('select', this.select, this);
};
/**
* Toggles aria-selected on element
*
* @param {HTMLElement} element
* @param {HTMLElement} oldElement
*/
select({element, oldElement}) {
if (element === oldElement) {
this.removeAriaSelected(element);
}
else {
this.addAriaSelected(element);
}
}
}