/*
 * Copyright (C) 2018-2022 Apple Inc. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */

// https://w3c.github.io/aria/#idl-interface
interface mixin AriaAttributes {
    [CEReactions=Needed, Reflect="aria-activedescendant"] attribute Element? ariaActiveDescendantElement;
    [CEReactions=Needed, Reflect="aria-atomic"]                 attribute DOMString? ariaAtomic;
    [CEReactions=Needed, Reflect="aria-autocomplete"]           attribute DOMString? ariaAutoComplete;
    [CEReactions=Needed, Reflect="aria-braillelabel"]           attribute DOMString? ariaBrailleLabel;
    [CEReactions=Needed, Reflect="aria-brailleroledescription"] attribute DOMString? ariaBrailleRoleDescription;
    [CEReactions=Needed, Reflect="aria-busy"]                   attribute DOMString? ariaBusy;
    [CEReactions=Needed, Reflect="aria-checked"]                attribute DOMString? ariaChecked;
    [CEReactions=Needed, Reflect="aria-colcount"]               attribute DOMString? ariaColCount;
    [CEReactions=Needed, Reflect="aria-colindex"]               attribute DOMString? ariaColIndex;
    [CEReactions=Needed, Reflect="aria-colindextext"]           attribute DOMString? ariaColIndexText;
    [CEReactions=Needed, Reflect="aria-colspan"]                attribute DOMString? ariaColSpan;
    [CEReactions=Needed, CustomGetter, Reflect="aria-controls"] attribute FrozenArray<Element>? ariaControlsElements;
    [CEReactions=Needed, Reflect="aria-current"]          attribute DOMString? ariaCurrent;
    [CEReactions=Needed, CustomGetter, Reflect="aria-describedby"] attribute FrozenArray<Element>? ariaDescribedByElements;
    [CEReactions=Needed, Reflect="aria-description"]      attribute DOMString? ariaDescription;
    [CEReactions=Needed, CustomGetter, Reflect="aria-details"] attribute FrozenArray<Element>? ariaDetailsElements;
    [CEReactions=Needed, Reflect="aria-disabled"]         attribute DOMString? ariaDisabled;
    [CEReactions=Needed, CustomGetter, Reflect="aria-errormessage"] attribute FrozenArray<Element>? ariaErrorMessageElements;
    [CEReactions=Needed, Reflect="aria-expanded"]         attribute DOMString? ariaExpanded;
    [CEReactions=Needed, CustomGetter, Reflect="aria-flowto"] attribute FrozenArray<Element>? ariaFlowToElements;
    [CEReactions=Needed, Reflect="aria-haspopup"]         attribute DOMString? ariaHasPopup;
    [CEReactions=Needed, Reflect="aria-hidden"]           attribute DOMString? ariaHidden;
    [CEReactions=Needed, Reflect="aria-invalid"]          attribute DOMString? ariaInvalid;
    [CEReactions=Needed, Reflect="aria-keyshortcuts"]     attribute DOMString? ariaKeyShortcuts;
    [CEReactions=Needed, Reflect="aria-label"]            attribute DOMString? ariaLabel;
    [CEReactions=Needed, CustomGetter, Reflect="aria-labelledby"] attribute FrozenArray<Element>? ariaLabelledByElements;
    [CEReactions=Needed, Reflect="aria-level"]            attribute DOMString? ariaLevel;
    [CEReactions=Needed, Reflect="aria-live"]             attribute DOMString? ariaLive;
    [CEReactions=Needed, Reflect="aria-modal"]            attribute DOMString? ariaModal;
    [CEReactions=Needed, Reflect="aria-multiline"]        attribute DOMString? ariaMultiLine;
    [CEReactions=Needed, Reflect="aria-multiselectable"]  attribute DOMString? ariaMultiSelectable;
    [CEReactions=Needed, Reflect="aria-orientation"]      attribute DOMString? ariaOrientation;
    [CEReactions=Needed, CustomGetter, Reflect="aria-owns"] attribute FrozenArray<Element>? ariaOwnsElements;
    [CEReactions=Needed, Reflect="aria-placeholder"]      attribute DOMString? ariaPlaceholder;
    [CEReactions=Needed, Reflect="aria-posinset"]         attribute DOMString? ariaPosInSet;
    [CEReactions=Needed, Reflect="aria-pressed"]          attribute DOMString? ariaPressed;
    [CEReactions=Needed, Reflect="aria-readonly"]         attribute DOMString? ariaReadOnly;
    [CEReactions=Needed, Reflect="aria-relevant"]         attribute DOMString? ariaRelevant;
    [CEReactions=Needed, Reflect="aria-required"]         attribute DOMString? ariaRequired;
    [CEReactions=Needed, Reflect="aria-roledescription"]  attribute DOMString? ariaRoleDescription;
    [CEReactions=Needed, Reflect="aria-rowcount"]         attribute DOMString? ariaRowCount;
    [CEReactions=Needed, Reflect="aria-rowindex"]         attribute DOMString? ariaRowIndex;
    [CEReactions=Needed, Reflect="aria-rowindextext"]     attribute DOMString? ariaRowIndexText;
    [CEReactions=Needed, Reflect="aria-rowspan"]          attribute DOMString? ariaRowSpan;
    [CEReactions=Needed, Reflect="aria-selected"]         attribute DOMString? ariaSelected;
    [CEReactions=Needed, Reflect="aria-setsize"]          attribute DOMString? ariaSetSize;
    [CEReactions=Needed, Reflect="aria-sort"]             attribute DOMString? ariaSort;
    [CEReactions=Needed, Reflect="aria-valuemax"]         attribute DOMString? ariaValueMax;
    [CEReactions=Needed, Reflect="aria-valuemin"]         attribute DOMString? ariaValueMin;
    [CEReactions=Needed, Reflect="aria-valuenow"]         attribute DOMString? ariaValueNow;
    [CEReactions=Needed, Reflect="aria-valuetext"]        attribute DOMString? ariaValueText;
};
