aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/dom/a11y.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/dom/a11y.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/dom/a11y.js540
1 files changed, 0 insertions, 540 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/dom/a11y.js b/contexts/data/lib/closure-library/closure/goog/dom/a11y.js
deleted file mode 100644
index b01ed55..0000000
--- a/contexts/data/lib/closure-library/closure/goog/dom/a11y.js
+++ /dev/null
@@ -1,540 +0,0 @@
-// Copyright 2007 The Closure Library Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS-IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-/**
- * @fileoverview Utilities for adding, removing and setting ARIA roles
- * as defined by W3C ARIA Working Draft:
- * http://www.w3.org/TR/2010/WD-wai-aria-20100916/
- * All modern browsers have some form of ARIA support, so no browser checks are
- * performed when adding ARIA to components.
- *
- */
-goog.provide('goog.dom.a11y');
-goog.provide('goog.dom.a11y.Announcer');
-goog.provide('goog.dom.a11y.LivePriority');
-goog.provide('goog.dom.a11y.Role');
-goog.provide('goog.dom.a11y.State');
-
-goog.require('goog.Disposable');
-goog.require('goog.dom');
-goog.require('goog.object');
-
-
-/**
- * Enumeration of ARIA states and properties.
- * @enum {string}
- */
-goog.dom.a11y.State = {
- // ARIA property for setting the currently active descendant of an element,
- // for example the selected item in a list box. Value: ID of an element.
- ACTIVEDESCENDANT: 'activedescendant',
-
- // ARIA property that, if true, indicates that all of a changed region should
- // be presented, instead of only parts. Value: one of {true, false}.
- ATOMIC: 'atomic',
-
- // ARIA property to specify that input completion is provided. Value:
- // one of {'inline', 'list', 'both', 'none'}.
- AUTOCOMPLETE: 'autocomplete',
-
- // ARIA state to indicate that an element and its subtree are being updated.
- // Value: one of {true, false}.
- BUSY: 'busy',
-
- // ARIA state for a checked item. Value: one of {'true', 'false', 'mixed',
- // undefined}.
- CHECKED: 'checked',
-
- // ARIA property that identifies the element or elements whose contents or
- // presence are controlled by this element. Value: space-separated IDs of
- // other elements.
- CONTROLS: 'controls',
-
- // ARIA property that identifies the element or elements that describe
- // this element. Value: space-separated IDs of other elements.
- DESCRIBEDBY: 'describedby',
-
- // ARIA state for a disabled item. Value: one of {true, false}.
- DISABLED: 'disabled',
-
- // ARIA property that indicates what functions can be performed when a
- // dragged object is released on the drop target. Value: one of
- // {'copy', 'move', 'link', 'execute', 'popup', 'none'}.
- DROPEFFECT: 'dropeffect',
-
- // ARIA state for setting whether the element like a tree node is expanded.
- // Value: one of {true, false, undefined}.
- EXPANDED: 'expanded',
-
- // ARIA property that identifies the next element (or elements) in the
- // recommended reading order of content. Value: space-separated ids of
- // elements to flow to.
- FLOWTO: 'flowto',
-
- // ARIA state that indicates an element's "grabbed" state in drag-and-drop.
- // Value: one of {true, false, undefined}.
- GRABBED: 'grabbed',
-
- // ARIA property indicating whether the element has a popup. Value: one of
- // {true, false}.
- HASPOPUP: 'haspopup',
-
- // ARIA state indicating that the element is not visible or perceivable
- // to any user. Value: one of {true, false}.
- HIDDEN: 'hidden',
-
- // ARIA state indicating that the entered value does not conform. Value:
- // one of {false, true, 'grammar', 'spelling'}
- INVALID: 'invalid',
-
- // ARIA property that provides a label to override any other text, value, or
- // contents used to describe this element. Value: string.
- LABEL: 'label',
-
- // ARIA property for setting the element which labels another element.
- // Value: space-separated IDs of elements.
- LABELLEDBY: 'labelledby',
-
- // ARIA property for setting the level of an element in the hierarchy.
- // Value: integer.
- LEVEL: 'level',
-
- // ARIA property indicating that an element will be updated, and
- // describes the types of updates the user agents, assistive technologies,
- // and user can expect from the live region. Value: one of {'off', 'polite',
- // 'assertive'}.
- LIVE: 'live',
-
- // ARIA property indicating whether a text box can accept multiline input.
- // Value: one of {true, false}.
- MULTILINE: 'multiline',
-
- // ARIA property indicating if the user may select more than one item.
- // Value: one of {true, false}.
- MULTISELECTABLE: 'multiselectable',
-
- // ARIA property indicating if the element is horizontal or vertical.
- // Value: one of {'vertical', 'horizontal'}.
- ORIENTATION: 'orientation',
-
- // ARIA property creating a visual, functional, or contextual parent/child
- // relationship when the DOM hierarchy can't be used to represent it.
- // Value: Space-separated IDs of elements.
- OWNS: 'owns',
-
- // ARIA property that defines an element's number of position in a list.
- // Value: integer.
- POSINSET: 'posinset',
-
- // ARIA state for a pressed item. Value: one of {true, false, undefined,
- // 'mixed'}.
- PRESSED: 'pressed',
-
- // ARIA property indicating that an element is not editable. Value:
- // one of {true, false}.
- READONLY: 'readonly',
-
- // ARIA property indicating that change notifications within this subtree
- // of a live region should be announced. Value: one of {'additions',
- // 'removals', 'text', 'all', 'additions text'}.
- RELEVANT: 'relevant',
-
- // ARIA property indicating that user input is required on this element
- // before a form may be submitted. Value: one of {true, false}.
- REQUIRED: 'required',
-
- // ARIA state for setting the currently selected item in the list.
- // Value: one of {true, false, undefined}.
- SELECTED: 'selected',
-
- // ARIA property defining the number of items in a list. Value: integer.
- SETSIZE: 'setsize',
-
- // ARIA property indicating if items are sorted. Value: one of {'ascending',
- // 'descending', 'none', 'other'}.
- SORT: 'sort',
-
- // ARIA property for slider maximum value. Value: number.
- VALUEMAX: 'valuemax',
-
- // ARIA property for slider minimum value. Value: number.
- VALUEMIN: 'valuemin',
-
- // ARIA property for slider active value. Value: number.
- VALUENOW: 'valuenow',
-
- // ARIA property for slider active value represented as text. Value: string.
- VALUETEXT: 'valuetext'
-};
-
-
-/**
- * Enumeration of ARIA roles.
- * @enum {string}
- */
-goog.dom.a11y.Role = {
- // ARIA role for an alert element that doesn't need to be explicitly closed.
- ALERT: 'alert',
-
- // ARIA role for an alert dialog element that takes focus and must be closed.
- ALERTDIALOG: 'alertdialog',
-
- // ARIA role for an application that implements its own keyboard navigation.
- APPLICATION: 'application',
-
- // ARIA role for an article.
- ARTICLE: 'article',
-
- // ARIA role for a banner containing mostly site content, not page content.
- BANNER: 'banner',
-
- // ARIA role for a button element.
- BUTTON: 'button',
-
- // ARIA role for a checkbox button element; use with the CHECKED state.
- CHECKBOX: 'checkbox',
-
- // ARIA role for a column header of a table or grid.
- COLUMNHEADER: 'columnheader',
-
- // ARIA role for a combo box element.
- COMBOBOX: 'combobox',
-
- // ARIA role for a supporting section of the document.
- COMPLEMENTARY: 'complementary',
-
- // ARIA role for a dialog, some descendant must take initial focus.
- DIALOG: 'dialog',
-
- // ARIA role for a directory, like a table of contents.
- DIRECTORY: 'directory',
-
- // ARIA role for a part of a page that's a document, not a web application.
- DOCUMENT: 'document',
-
- // ARIA role for a landmark region logically considered one form.
- FORM: 'form',
-
- // ARIA role for an interactive control of tabular data.
- GRID: 'grid',
-
- // ARIA role for a cell in a grid.
- GRIDCELL: 'gridcell',
-
- // ARIA role for a group of related elements like tree item siblings.
- GROUP: 'group',
-
- // ARIA role for a heading element.
- HEADING: 'heading',
-
- // ARIA role for a container of elements that together comprise one image.
- IMG: 'img',
-
- // ARIA role for a link.
- LINK: 'link',
-
- // ARIA role for a list of non-interactive list items.
- LIST: 'list',
-
- // ARIA role for a listbox.
- LISTBOX: 'listbox',
-
- // ARIA role for a list item.
- LISTITEM: 'listitem',
-
- // ARIA role for a live region where new information is added.
- LOG: 'log',
-
- // ARIA landmark role for the main content in a document. Use only once.
- MAIN: 'main',
-
- // ARIA role for a live region of non-essential information that changes.
- MARQUEE: 'marquee',
-
- // ARIA role for a mathematical expression.
- MATH: 'math',
-
- // ARIA role for a popup menu.
- MENU: 'menu',
-
- // ARIA role for a menubar element containing menu elements.
- MENUBAR: 'menubar',
-
- // ARIA role for menu item elements.
- MENU_ITEM: 'menuitem',
-
- // ARIA role for a checkbox box element inside a menu.
- MENU_ITEM_CHECKBOX: 'menuitemcheckbox',
-
- // ARIA role for a radio button element inside a menu.
- MENU_ITEM_RADIO: 'menuitemradio',
-
- // ARIA landmark role for a collection of navigation links.
- NAVIGATION: 'navigation',
-
- // ARIA role for a section ancillary to the main content.
- NOTE: 'note',
-
- // ARIA role for option items that are children of combobox, listbox, menu,
- // radiogroup, or tree elements.
- OPTION: 'option',
-
- // ARIA role for ignorable cosmetic elements with no semantic significance.
- PRESENTATION: 'presentation',
-
- // ARIA role for a progress bar element.
- PROGRESSBAR: 'progressbar',
-
- // ARIA role for a radio button element.
- RADIO: 'radio',
-
- // ARIA role for a group of connected radio button elements.
- RADIOGROUP: 'radiogroup',
-
- // ARIA role for an important region of the page.
- REGION: 'region',
-
- // ARIA role for a row of cells in a grid.
- ROW: 'row',
-
- // ARIA role for a group of one or more rows in a grid.
- ROWGROUP: 'rowgroup',
-
- // ARIA role for a row header of a table or grid.
- ROWHEADER: 'rowheader',
-
- // ARIA role for a scrollbar element.
- SCROLLBAR: 'scrollbar',
-
- // ARIA landmark role for a part of the page providing search functionality.
- SEARCH: 'search',
-
- // ARIA role for a menu separator.
- SEPARATOR: 'separator',
-
- // ARIA role for a slider.
- SLIDER: 'slider',
-
- // ARIA role for a spin button.
- SPINBUTTON: 'spinbutton',
-
- // ARIA role for a live region with advisory info less severe than an alert.
- STATUS: 'status',
-
- // ARIA role for a tab button.
- TAB: 'tab',
-
- // ARIA role for a tab bar (i.e. a list of tab buttons).
- TAB_LIST: 'tablist',
-
- // ARIA role for a tab page (i.e. the element holding tab contents).
- TAB_PANEL: 'tabpanel',
-
- // ARIA role for a textbox element.
- TEXTBOX: 'textbox',
-
- // ARIA role for an element displaying elapsed time or time remaining.
- TIMER: 'timer',
-
- // ARIA role for a toolbar element.
- TOOLBAR: 'toolbar',
-
- // ARIA role for a tooltip element.
- TOOLTIP: 'tooltip',
-
- // ARIA role for a tree.
- TREE: 'tree',
-
- // ARIA role for a grid whose rows can be expanded and collapsed like a tree.
- TREEGRID: 'treegrid',
-
- // ARIA role for a tree item that sometimes may be expanded or collapsed.
- TREEITEM: 'treeitem'
-};
-
-
-/**
- * Enumeration of ARIA state values for live regions.
- *
- * See http://www.w3.org/TR/wai-aria/states_and_properties#aria-live
- * for more information.
- * @enum {string}
- */
-goog.dom.a11y.LivePriority = {
- /**
- * Default value. Used for live regions that should never be spoken.
- */
- OFF: 'off',
- /**
- * Spoke only when the user is idle. Best option in most cases.
- */
- POLITE: 'polite',
- /**
- * Spoken as soon as possible, which means that the information has a
- * higher priority than normal, but does not necessarily interrupt
- * immediately.
- */
- ASSERTIVE: 'assertive'
-};
-
-
-/**
- * Sets the role of an element.
- * @param {Element} element DOM node to set role of.
- * @param {string} roleName role name(s).
- */
-goog.dom.a11y.setRole = function(element, roleName) {
- element.setAttribute('role', roleName);
-};
-
-
-/**
- * Gets role of an element.
- * @param {Element} element DOM node to get role of.
- * @return {string} rolename.
- */
-goog.dom.a11y.getRole = function(element) {
- return element.getAttribute('role') || '';
-};
-
-
-/**
- * Sets the state or property of an element.
- * @param {Element} element DOM node where we set state.
- * @param {string} state State attribute being set. Automatically adds prefix
- * 'aria-' to the state name.
- * @param {string|boolean|number} value Value for the state attribute.
- */
-goog.dom.a11y.setState = function(element, state, value) {
- element.setAttribute('aria-' + state, value);
-};
-
-
-/**
- * Gets value of specified state or property.
- * @param {Element} element DOM node to get state from.
- * @param {string} stateName State name.
- * @return {string} Value of the state attribute.
- */
-goog.dom.a11y.getState = function(element, stateName) {
- var attrb =
- /** @type {string|number|boolean} */(element.getAttribute('aria-' +
- stateName));
- // Check for multiple representations - attrb might
- // be a boolean or a string
- if ((attrb === true) || (attrb === false)) {
- return attrb ? 'true' : 'false';
- } else if (!attrb) {
- return '';
- } else {
- return String(attrb);
- }
-};
-
-
-/**
- * Gets the activedescendant of the given element.
- * @param {Element} element DOM node to get activedescendant from.
- * @return {Element} DOM node of the activedescendant.
- */
-goog.dom.a11y.getActiveDescendant = function(element) {
- var id = goog.dom.a11y.getState(
- element, goog.dom.a11y.State.ACTIVEDESCENDANT);
- return goog.dom.getOwnerDocument(element).getElementById(id);
-};
-
-
-/**
- * Sets the activedescendant value for an element.
- * @param {Element} element DOM node to set activedescendant to.
- * @param {Element} activeElement DOM node being set as activedescendant.
- */
-goog.dom.a11y.setActiveDescendant = function(element, activeElement) {
- goog.dom.a11y.setState(element, goog.dom.a11y.State.ACTIVEDESCENDANT,
- activeElement ? activeElement.id : '');
-};
-
-
-
-/**
- * Class that allows messages to be spoken by assistive technologies that the
- * user may have active.
- *
- * @param {goog.dom.DomHelper} domHelper DOM helper.
- * @constructor
- * @extends {goog.Disposable}
- */
-goog.dom.a11y.Announcer = function(domHelper) {
- goog.base(this);
-
- /**
- * @type {goog.dom.DomHelper}
- * @private
- */
- this.domHelper_ = domHelper;
-
- /**
- * Map of priority to live region elements to use for communicating updates.
- * Elements are created on demand.
- * @type {Object.<goog.dom.a11y.LivePriority, Element>}
- * @private
- */
- this.liveRegions_ = {};
-};
-goog.inherits(goog.dom.a11y.Announcer, goog.Disposable);
-
-
-/** @override */
-goog.dom.a11y.Announcer.prototype.disposeInternal = function() {
- goog.object.forEach(
- this.liveRegions_, this.domHelper_.removeNode, this.domHelper_);
- this.liveRegions_ = null;
- this.domHelper_ = null;
- goog.base(this, 'disposeInternal');
-};
-
-
-/**
- * Announce a message to be read by any assistive technologies the user may
- * have active.
- * @param {string} message The message to announce to screen readers.
- * @param {goog.dom.a11y.LivePriority=} opt_priority The priority of the
- * message. Defaults to POLITE.
- */
-goog.dom.a11y.Announcer.prototype.say = function(message, opt_priority) {
- goog.dom.setTextContent(this.getLiveRegion_(
- opt_priority || goog.dom.a11y.LivePriority.POLITE), message);
-};
-
-
-/**
- * Returns an aria-live region that can be used to communicate announcements.
- * @param {goog.dom.a11y.LivePriority} priority The required priority.
- * @return {Element} A live region of the requested priority.
- * @private
- */
-goog.dom.a11y.Announcer.prototype.getLiveRegion_ = function(priority) {
- if (this.liveRegions_[priority]) {
- return this.liveRegions_[priority];
- }
- var liveRegion;
- liveRegion = this.domHelper_.createElement('div');
- liveRegion.style.position = 'absolute';
- liveRegion.style.top = '-1000px';
- goog.dom.a11y.setState(liveRegion, 'live', priority);
- goog.dom.a11y.setState(liveRegion, 'atomic', 'true');
- this.domHelper_.getDocument().body.appendChild(liveRegion);
- this.liveRegions_[priority] = liveRegion;
- return liveRegion;
-};