/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict" ;
const protocol = require("resource://devtools/shared/protocol.js");
const { Arg, generateActorSpec, RetVal, types } = protocol;
types.addActorType("accessible" );
/**
* Accessible with children listed in the ancestry structure calculated by the
* walker.
*/
types.addDictType("accessibleWithChildren" , {
// Accessible
accessible: "accessible" ,
// Accessible's children
children: "array:accessible" ,
});
/**
* Data passed via "audit-event" to the client. It may include type, a list of
* ancestries for accessible actors that have failing accessibility checks or
* a progress information.
*/
types.addDictType("auditEventData" , {
type: "string" ,
// List of ancestries (array:accessibleWithChildren)
ancestries: "nullable:array:array:accessibleWithChildren" ,
// Audit progress information
progress: "nullable:json" ,
});
/**
* Accessible relation object described by its type that also includes relation targets.
*/
types.addDictType("accessibleRelation" , {
// Accessible relation type
type: "string" ,
// Accessible relation's targets
targets: "array:accessible" ,
});
const accessibleSpec = generateActorSpec({
typeName: "accessible" ,
events: {
"actions-change" : {
type: "actionsChange" ,
actions: Arg(0, "array:string" ),
},
"name-change" : {
type: "nameChange" ,
name: Arg(0, "string" ),
parent: Arg(1, "nullable:accessible" ),
},
"value-change" : {
type: "valueChange" ,
value: Arg(0, "string" ),
},
"description-change" : {
type: "descriptionChange" ,
description: Arg(0, "string" ),
},
"states-change" : {
type: "statesChange" ,
states: Arg(0, "array:string" ),
},
"attributes-change" : {
type: "attributesChange" ,
attributes: Arg(0, "json" ),
},
"shortcut-change" : {
type: "shortcutChange" ,
shortcut: Arg(0, "string" ),
},
reorder: {
type: "reorder" ,
childCount: Arg(0, "number" ),
},
"text-change" : {
type: "textChange" ,
},
"index-in-parent-change" : {
type: "indexInParentChange" ,
indexInParent: Arg(0, "number" ),
},
audited: {
type: "audited" ,
audit: Arg(0, "nullable:json" ),
},
},
methods: {
audit: {
request: { options: Arg(0, "nullable:json" ) },
response: {
audit: RetVal("nullable:json" ),
},
},
children: {
request: {},
response: {
children: RetVal("array:accessible" ),
},
},
getRelations: {
request: {},
response: {
relations: RetVal("array:accessibleRelation" ),
},
},
hydrate: {
request: {},
response: {
properties: RetVal("json" ),
},
},
snapshot: {
request: {},
response: {
snapshot: RetVal("json" ),
},
},
},
});
const accessibleWalkerSpec = generateActorSpec({
typeName: "accessiblewalker" ,
events: {
"document-ready" : {
type: "documentReady" ,
},
"picker-accessible-picked" : {
type: "pickerAccessiblePicked" ,
accessible: Arg(0, "nullable:accessible" ),
},
"picker-accessible-previewed" : {
type: "pickerAccessiblePreviewed" ,
accessible: Arg(0, "nullable:accessible" ),
},
"picker-accessible-hovered" : {
type: "pickerAccessibleHovered" ,
accessible: Arg(0, "nullable:accessible" ),
},
"picker-accessible-canceled" : {
type: "pickerAccessibleCanceled" ,
},
"highlighter-event" : {
type: "highlighter-event" ,
data: Arg(0, "json" ),
},
"audit-event" : {
type: "audit-event" ,
audit: Arg(0, "auditEventData" ),
},
},
methods: {
children: {
request: {},
response: {
children: RetVal("array:accessible" ),
},
},
getAccessibleFor: {
request: { node: Arg(0, "domnode" ) },
response: {
accessible: RetVal("nullable:accessible" ),
},
},
getAncestry: {
request: { accessible: Arg(0, "accessible" ) },
response: {
ancestry: RetVal("array:accessibleWithChildren" ),
},
},
startAudit: {
request: { options: Arg(0, "nullable:json" ) },
},
highlightAccessible: {
request: {
accessible: Arg(0, "accessible" ),
options: Arg(1, "nullable:json" ),
},
response: {
value: RetVal("nullable:boolean" ),
},
},
unhighlight: {
request: {},
},
pick: {},
pickAndFocus: {},
cancelPick: {},
showTabbingOrder: {
request: {
elm: Arg(0, "domnode" ),
index: Arg(1, "number" ),
},
response: {
tabbingOrderInfo: RetVal("json" ),
},
},
hideTabbingOrder() {},
},
});
const simulatorSpec = generateActorSpec({
typeName: "simulator" ,
methods: {
simulate: {
request: { options: Arg(0, "nullable:json" ) },
response: {
value: RetVal("boolean" ),
},
},
},
});
const accessibilitySpec = generateActorSpec({
typeName: "accessibility" ,
events: {
init: {
type: "init" ,
},
shutdown: {
type: "shutdown" ,
},
},
methods: {
getTraits: {
request: {},
response: { traits: RetVal("json" ) },
},
bootstrap: {
request: {},
response: {
state: RetVal("json" ),
},
},
getWalker: {
request: {},
response: {
walker: RetVal("accessiblewalker" ),
},
},
getSimulator: {
request: {},
response: {
simulator: RetVal("nullable:simulator" ),
},
},
},
});
const parentAccessibilitySpec = generateActorSpec({
typeName: "parentaccessibility" ,
events: {
"can-be-disabled-change" : {
type: "canBeDisabledChange" ,
canBeDisabled: Arg(0, "boolean" ),
},
"can-be-enabled-change" : {
type: "canBeEnabledChange" ,
canBeEnabled: Arg(0, "boolean" ),
},
},
methods: {
bootstrap: {
request: {},
response: {
state: RetVal("json" ),
},
},
enable: {
request: {},
response: {},
},
disable: {
request: {},
response: {},
},
},
});
exports.accessibleSpec = accessibleSpec;
exports.accessibleWalkerSpec = accessibleWalkerSpec;
exports.accessibilitySpec = accessibilitySpec;
exports.parentAccessibilitySpec = parentAccessibilitySpec;
exports.simulatorSpec = simulatorSpec;
quality 100%
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland