Adds additional aria elements for the menu items.
This commit is contained in:
parent
031dccee98
commit
3e190fc5f4
|
@ -598,11 +598,13 @@
|
|||
{onmouseup: MENU.Mouseup,
|
||||
ondragstart: FALSE, onselectstart: FALSE, onselectend: FALSE,
|
||||
ontouchstart: MENU.Touchstart, ontouchend: MENU.Touchend,
|
||||
className: "MathJax_MenuItem", menuItem: this},
|
||||
className: "MathJax_MenuItem", role: this.role,
|
||||
menuItem: this},
|
||||
def);
|
||||
},
|
||||
|
||||
Create: function (menu) {
|
||||
console.log('create');
|
||||
if (!this.hidden) {
|
||||
var def = this.Attributes();
|
||||
var label = this.Label(def,menu);
|
||||
|
@ -679,14 +681,12 @@
|
|||
* Abstract class of menu items that are focusable and perform some action
|
||||
*/
|
||||
MENU.ENTRY = MENU.ITEM.Subclass({
|
||||
|
||||
role: "menuitem", // Aria role.
|
||||
|
||||
Attributes: function(def) {
|
||||
def = HUB.Insert(
|
||||
{onmouseover: MENU.Mouseover, onmouseout: MENU.Mouseout,
|
||||
onmousedown: MENU.Mousedown, role: this.role,
|
||||
onkeydown: MENU.Keydown,
|
||||
onmousedown: MENU.Mousedown, onkeydown: MENU.Keydown,
|
||||
"aria-disabled": !!this.disabled},
|
||||
def);
|
||||
def = this.SUPER(arguments).Attributes.call(this, def);
|
||||
|
@ -798,6 +798,11 @@
|
|||
marker: "\u25BA", // the submenu arrow
|
||||
markerRTL: "\u25C4", // the submenu arrow for RTL
|
||||
|
||||
Attributes: function(def) {
|
||||
def = HUB.Insert({"aria-haspopup": "true"}, def);
|
||||
def = this.SUPER(arguments).Attributes.call(this, def);
|
||||
return def;
|
||||
},
|
||||
Init: function (name,def) {
|
||||
if (!(name instanceof Array)) {name = [name,name]} // make [id,label] pair
|
||||
this.name = name; var i = 1;
|
||||
|
@ -891,6 +896,13 @@
|
|||
marker: (isPC ? "\u25CF" : "\u2713"), // the checkmark
|
||||
role: "menuitemradio",
|
||||
|
||||
Attributes: function(def) {
|
||||
if (CONFIG.settings[this.variable] === this.value) {
|
||||
def = HUB.Insert({"aria-checked": "true"}, def);
|
||||
}
|
||||
def = this.SUPER(arguments).Attributes.call(this, def);
|
||||
return def;
|
||||
},
|
||||
Init: function (name,variable,def) {
|
||||
if (!(name instanceof Array)) {name = [name,name]} // make [id,label] pair
|
||||
this.name = name; this.variable = variable; this.With(def);
|
||||
|
@ -898,19 +910,24 @@
|
|||
},
|
||||
Label: function (def,menu) {
|
||||
var span = {className:"MathJax_MenuRadioCheck" + this.rtlClass()};
|
||||
if (CONFIG.settings[this.variable] !== this.value) {span = {style:{display:"none"}}}
|
||||
if (CONFIG.settings[this.variable] !== this.value) {
|
||||
span = {style:{display:"none"}};
|
||||
}
|
||||
return [["span",span,[this.marker]]," "+this.Name()];
|
||||
},
|
||||
Mouseup: function (event,menu) {
|
||||
console.log(menu);
|
||||
if (!this.disabled) {
|
||||
var child = menu.parentNode.childNodes;
|
||||
for (var i = 0, m = child.length; i < m; i++) {
|
||||
var item = child[i].menuItem;
|
||||
if (item && item.variable === this.variable)
|
||||
{child[i].firstChild.style.display = "none"}
|
||||
if (item && item.variable === this.variable) {
|
||||
child[i].firstChild.style.display = "none";
|
||||
}
|
||||
}
|
||||
menu.firstChild.display = "";
|
||||
CONFIG.settings[this.variable] = this.value;
|
||||
console.log('Changing');
|
||||
MENU.cookie[this.variable] = CONFIG.settings[this.variable]; MENU.saveCookie();
|
||||
SIGNAL.Post(["radio button",this]);
|
||||
}
|
||||
|
@ -929,6 +946,13 @@
|
|||
marker: "\u2713", // the checkmark
|
||||
role: "menuitemcheckbox",
|
||||
|
||||
Attributes: function(def) {
|
||||
if (CONFIG.settings[this.variable]) {
|
||||
def = HUB.Insert({"aria-checked": "true"}, def);
|
||||
}
|
||||
def = this.SUPER(arguments).Attributes.call(this, def);
|
||||
return def;
|
||||
},
|
||||
Init: function (name,variable,def) {
|
||||
if (!(name instanceof Array)) {name = [name,name]} // make [id,label] pair
|
||||
this.name = name; this.variable = variable; this.With(def);
|
||||
|
@ -978,6 +1002,13 @@
|
|||
* A rule in a menu
|
||||
*/
|
||||
MENU.ITEM.RULE = MENU.ITEM.Subclass({
|
||||
role: "separator",
|
||||
|
||||
Attributes: function(def) {
|
||||
def = HUB.Insert({"aria-orientation": "vertical"}, def);
|
||||
def = this.SUPER(arguments).Attributes.call(this, def);
|
||||
return def;
|
||||
},
|
||||
Label: function (def,menu) {
|
||||
def.className += " MathJax_MenuRule";
|
||||
return null;
|
||||
|
|
Loading…
Reference in New Issue
Block a user