Exemplo n.º 1
0
            internal static void setState(HTMLElement element, goog.a11y.aria.State stateName, object value)
            {
                if (value is JsArray <string> )
                {
                    value = ((JsArray <string>)value).Join(" ");
                }
                var attrStateName = goog.a11y.aria.getAriaAttributeName_(stateName);

                if ((value as string) == "" || value == Script.Undefined)
                {
                    var defaultValueMap = goog.a11y.aria.datatables.getDefaultValuesMap();
                    // Work around for browsers that don't properly support ARIA.
                    // According to the ARIA W3C standard, user agents should allow
                    // setting empty value which results in setting the default value
                    // for the ARIA state if such exists. The exact text from the ARIA W3C
                    // standard (http://www.w3.org/TR/wai-aria/states_and_properties):
                    // "When a value is indicated as the default, the user agent
                    // MUST follow the behavior prescribed by this value when the state or
                    // property is empty or undefined."
                    // The defaultValueMap contains the default values for the ARIA states
                    // and has as a key the goog.a11y.aria.State constant for the state.
                    if (defaultValueMap.ContainsKey(stateName))
                    {
                        element.SetAttribute(attrStateName, (string)defaultValueMap[stateName]);
                    }
                    else
                    {
                        element.RemoveAttribute(attrStateName);
                    }
                }
                else
                {
                    element.SetAttribute(attrStateName, value.ToString());
                }
            }
Exemplo n.º 2
0
 private static string getAriaAttributeName_(goog.a11y.aria.State ariaName)
 {
     if (goog.asserts.ENABLE_ASSERTS)
     {
         goog.asserts.assert((int)ariaName == 0, "ARIA attribute cannot be empty.");
         goog.asserts.assert(
             goog.a11y.aria.containsValue(ariaName),
             "No such ARIA attribute " + ariaName);
     }
     return(goog.a11y.aria.ARIA_PREFIX_ + ariaName.ToString().ToLower());
 }
Exemplo n.º 3
0
 internal static bool containsValue(goog.a11y.aria.State ariaName)
 {
     return(((int)ariaName > 0) && ((int)ariaName < (int)goog.a11y.aria.State._END_));
 }
Exemplo n.º 4
0
 /// <summary>
 /// Determines if the given ARIA attribute is an ARIA property or ARIA state.
 /// </summary>
 /// <param name="attr">The ARIA attribute to classify.</param>
 /// <returns>If the ARIA attribute is an ARIA state.</returns>
 private static bool isAriaState_(goog.a11y.aria.State attr)
 {
     return(attr == goog.a11y.aria.State.CHECKED ||
            attr == goog.a11y.aria.State.SELECTED);
 }
Exemplo n.º 5
0
        /// <summary>
        /// Returns the appropriate ARIA attribute based on ARIA role if the ARIA
        /// attribute is an ARIA state.
        /// </summary>
        /// <param name="element">The element from which to get the ARIA role for
        /// matching ARIA state.</param>
        /// <param name="attr">The ARIA attribute to check to see if it
        /// can be applied to the given ARIA role.</param>
        /// <returns>An ARIA attribute that can be applied to the
        /// given ARIA role.</returns>
        private static goog.a11y.aria.State getAriaStateForAriaRole_(HTMLElement element, goog.a11y.aria.State attr)
        {
            var role = goog.a11y.aria.getRole(element);

            if (role == 0)
            {
                return(attr);
            }
            //role = /** @type {goog.a11y.aria.Role} */ (role);
            var matchAttr = goog.ui.ControlRenderer.TOGGLE_ARIA_STATE_MAP_[role];

            matchAttr = matchAttr != 0 ? matchAttr : attr;
            return(goog.ui.ControlRenderer.isAriaState_(attr) ? matchAttr : attr);
        }