diff --git a/Cargo.lock b/Cargo.lock index 2477862..731e4aa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,18 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -22,6 +34,9 @@ dependencies = [ [[package]] name = "aria-query" version = "0.0.4" +dependencies = [ + "ordered_hash_map", +] [[package]] name = "bumpalo" @@ -43,6 +58,15 @@ dependencies = [ "web-sys", ] +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + [[package]] name = "js-sys" version = "0.3.77" @@ -71,6 +95,15 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "ordered_hash_map" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab0e5f22bf6dd04abd854a8874247813a8fa2c8c1260eba6fbb150270ce7c176" +dependencies = [ + "hashbrown", +] + [[package]] name = "proc-macro2" version = "1.0.94" @@ -135,6 +168,12 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + [[package]] name = "wasm-bindgen" version = "0.2.100" @@ -201,3 +240,23 @@ dependencies = [ "js-sys", "wasm-bindgen", ] + +[[package]] +name = "zerocopy" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/packages/aria-query/Cargo.toml b/packages/aria-query/Cargo.toml index 0e9eea9..68eee47 100644 --- a/packages/aria-query/Cargo.toml +++ b/packages/aria-query/Cargo.toml @@ -9,3 +9,4 @@ license.workspace = true repository.workspace = true [dependencies] +ordered_hash_map = "0.4.0" diff --git a/packages/aria-query/src/aria_props_map.rs b/packages/aria-query/src/aria_props_map.rs index e1ccb74..9cb2725 100644 --- a/packages/aria-query/src/aria_props_map.rs +++ b/packages/aria-query/src/aria_props_map.rs @@ -1,466 +1,469 @@ -use std::{collections::HashMap, sync::LazyLock}; +use std::{hash::RandomState, sync::LazyLock}; + +use ordered_hash_map::OrderedHashMap; use crate::{ AriaPropertyDefinitionType, types::{AriaProperty, AriaPropertyDefinition}, }; -pub static ARIA: LazyLock> = LazyLock::new(|| { - HashMap::from([ - ( - AriaProperty::AriaActivedescendant, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Id, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaAtomic, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaAutocomplete, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Token, - values: Some(vec![ - "inline".into(), - "list".into(), - "both".into(), - "none".into(), - ]), - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaBraillelabel, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::String, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaBrailleroledescription, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::String, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaBusy, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaChecked, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Tristate, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaColcount, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Integer, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaColindex, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Integer, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaColspan, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Integer, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaControls, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Idlist, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaCurrent, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Token, - values: Some(vec![ - "page".into(), - "step".into(), - "location".into(), - "date".into(), - "time".into(), - "true".into(), - "false".into(), - ]), - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaDescribedby, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Idlist, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaDescription, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::String, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaDetails, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Id, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaDisabled, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaDropeffect, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Tokenlist, - values: Some(vec![ - "copy".into(), - "execute".into(), - "link".into(), - "move".into(), - "none".into(), - "popup".into(), - ]), - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaErrormessage, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Id, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaExpanded, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: Some(true), - }, - ), - ( - AriaProperty::AriaFlowto, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Idlist, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaGrabbed, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: Some(true), - }, - ), - ( - AriaProperty::AriaHaspopup, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Token, - values: Some(vec![ - "false".into(), - "true".into(), - "menu".into(), - "listbox".into(), - "tree".into(), - "grid".into(), - "dialog".into(), - ]), - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaHidden, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: Some(true), - }, - ), - ( - AriaProperty::AriaInvalid, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Token, - values: Some(vec![ - "grammar".into(), - "false".into(), - "spelling".into(), - "true".into(), - ]), - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaKeyshortcuts, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::String, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaLabel, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::String, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaLabelledby, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Idlist, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaLevel, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Integer, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaLive, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Token, - values: Some(vec!["assertive".into(), "off".into(), "polite".into()]), - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaModal, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaMultiline, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaMultiselectable, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaOrientation, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Token, - values: Some(vec![ - "vertical".into(), - "undefined".into(), - "horizontal".into(), - ]), - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaOwns, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Idlist, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaPlaceholder, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::String, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaPosinset, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Integer, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaPressed, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Tristate, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaReadonly, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaRelevant, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Tokenlist, - values: Some(vec![ - "additions".into(), - "all".into(), - "removals".into(), - "text".into(), - ]), - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaRequired, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaRoledescription, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::String, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaRowcount, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Integer, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaRowindex, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Integer, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaRowspan, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Integer, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaSelected, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Boolean, - values: None, - allow_undefined: Some(true), - }, - ), - ( - AriaProperty::AriaSetsize, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Integer, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaRelevant, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Token, - values: Some(vec![ - "ascending".into(), - "descending".into(), - "none".into(), - "other".into(), - ]), - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaValuemax, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Number, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaValuemin, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Number, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaValuenow, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::Number, - values: None, - allow_undefined: None, - }, - ), - ( - AriaProperty::AriaValuetext, - AriaPropertyDefinition { - r#type: AriaPropertyDefinitionType::String, - values: None, - allow_undefined: None, - }, - ), - ]) -}); +pub static ARIA: LazyLock> = + LazyLock::new(|| { + OrderedHashMap::from_iter([ + ( + AriaProperty::AriaActivedescendant, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Id, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaAtomic, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaAutocomplete, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Token, + values: Some(vec![ + "inline".into(), + "list".into(), + "both".into(), + "none".into(), + ]), + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaBraillelabel, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::String, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaBrailleroledescription, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::String, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaBusy, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaChecked, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Tristate, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaColcount, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Integer, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaColindex, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Integer, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaColspan, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Integer, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaControls, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Idlist, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaCurrent, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Token, + values: Some(vec![ + "page".into(), + "step".into(), + "location".into(), + "date".into(), + "time".into(), + "true".into(), + "false".into(), + ]), + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaDescribedby, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Idlist, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaDescription, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::String, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaDetails, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Id, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaDisabled, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaDropeffect, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Tokenlist, + values: Some(vec![ + "copy".into(), + "execute".into(), + "link".into(), + "move".into(), + "none".into(), + "popup".into(), + ]), + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaErrormessage, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Id, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaExpanded, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: Some(true), + }, + ), + ( + AriaProperty::AriaFlowto, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Idlist, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaGrabbed, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: Some(true), + }, + ), + ( + AriaProperty::AriaHaspopup, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Token, + values: Some(vec![ + "false".into(), + "true".into(), + "menu".into(), + "listbox".into(), + "tree".into(), + "grid".into(), + "dialog".into(), + ]), + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaHidden, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: Some(true), + }, + ), + ( + AriaProperty::AriaInvalid, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Token, + values: Some(vec![ + "grammar".into(), + "false".into(), + "spelling".into(), + "true".into(), + ]), + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaKeyshortcuts, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::String, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaLabel, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::String, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaLabelledby, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Idlist, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaLevel, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Integer, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaLive, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Token, + values: Some(vec!["assertive".into(), "off".into(), "polite".into()]), + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaModal, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaMultiline, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaMultiselectable, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaOrientation, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Token, + values: Some(vec![ + "vertical".into(), + "undefined".into(), + "horizontal".into(), + ]), + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaOwns, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Idlist, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaPlaceholder, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::String, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaPosinset, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Integer, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaPressed, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Tristate, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaReadonly, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaRelevant, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Tokenlist, + values: Some(vec![ + "additions".into(), + "all".into(), + "removals".into(), + "text".into(), + ]), + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaRequired, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaRoledescription, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::String, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaRowcount, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Integer, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaRowindex, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Integer, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaRowspan, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Integer, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaSelected, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Boolean, + values: None, + allow_undefined: Some(true), + }, + ), + ( + AriaProperty::AriaSetsize, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Integer, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaRelevant, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Token, + values: Some(vec![ + "ascending".into(), + "descending".into(), + "none".into(), + "other".into(), + ]), + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaValuemax, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Number, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaValuemin, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Number, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaValuenow, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::Number, + values: None, + allow_undefined: None, + }, + ), + ( + AriaProperty::AriaValuetext, + AriaPropertyDefinition { + r#type: AriaPropertyDefinitionType::String, + values: None, + allow_undefined: None, + }, + ), + ]) + }); diff --git a/packages/aria-query/src/dom_map.rs b/packages/aria-query/src/dom_map.rs index a2f3f49..d883c80 100644 --- a/packages/aria-query/src/dom_map.rs +++ b/packages/aria-query/src/dom_map.rs @@ -1,524 +1,527 @@ -use std::{collections::HashMap, sync::LazyLock}; +use std::{hash::RandomState, sync::LazyLock}; + +use ordered_hash_map::OrderedHashMap; use crate::types::{AriaDomDefinition, AriaQueryHtmlElement}; -pub static DOM: LazyLock> = LazyLock::new(|| { - HashMap::from([ - ( - AriaQueryHtmlElement::A, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Abbr, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Acronym, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Address, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Applet, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Area, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Article, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Aside, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Audio, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::B, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Base, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Bdi, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Bdo, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Big, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Blink, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Blockquote, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Body, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Br, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Button, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Canvas, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Caption, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Center, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Cite, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Code, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Col, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Colgroup, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Content, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Data, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Datalist, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Dd, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Del, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Details, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Dfn, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Dialog, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Dir, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Div, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Dl, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Dt, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Em, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Embed, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Fieldset, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Figcaption, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Figure, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Font, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Footer, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Form, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Frame, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Frameset, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::H1, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::H2, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::H3, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::H4, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::H5, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::H6, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Head, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Header, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Hgroup, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Hr, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Html, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::I, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Iframe, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Img, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Input, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Ins, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Kbd, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Keygen, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Label, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Legend, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Li, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Link, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Main, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Map, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Mark, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Marquee, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Menu, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Menuitem, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Meta, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Meter, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Nav, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Noembed, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Noscript, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Object, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Ol, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Optgroup, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Option, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Output, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::P, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Param, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Picture, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Pre, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Progress, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Q, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Rp, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Rt, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Rtc, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Ruby, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::S, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Samp, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Script, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Section, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Select, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Small, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Source, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Spacer, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Span, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Strike, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Strong, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Style, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Sub, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Summary, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Sup, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Table, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Tbody, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Td, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Textarea, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Tfoot, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Th, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Thead, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Time, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Title, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Tr, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Track, - AriaDomDefinition { reserved: true }, - ), - ( - AriaQueryHtmlElement::Tt, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::U, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Ul, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Var, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Video, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Wbr, - AriaDomDefinition { reserved: false }, - ), - ( - AriaQueryHtmlElement::Xmp, - AriaDomDefinition { reserved: false }, - ), - ]) -}); +pub static DOM: LazyLock> = + LazyLock::new(|| { + OrderedHashMap::from_iter([ + ( + AriaQueryHtmlElement::A, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Abbr, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Acronym, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Address, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Applet, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Area, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Article, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Aside, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Audio, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::B, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Base, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Bdi, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Bdo, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Big, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Blink, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Blockquote, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Body, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Br, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Button, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Canvas, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Caption, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Center, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Cite, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Code, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Col, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Colgroup, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Content, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Data, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Datalist, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Dd, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Del, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Details, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Dfn, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Dialog, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Dir, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Div, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Dl, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Dt, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Em, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Embed, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Fieldset, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Figcaption, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Figure, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Font, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Footer, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Form, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Frame, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Frameset, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::H1, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::H2, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::H3, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::H4, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::H5, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::H6, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Head, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Header, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Hgroup, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Hr, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Html, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::I, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Iframe, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Img, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Input, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Ins, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Kbd, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Keygen, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Label, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Legend, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Li, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Link, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Main, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Map, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Mark, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Marquee, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Menu, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Menuitem, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Meta, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Meter, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Nav, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Noembed, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Noscript, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Object, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Ol, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Optgroup, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Option, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Output, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::P, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Param, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Picture, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Pre, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Progress, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Q, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Rp, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Rt, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Rtc, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Ruby, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::S, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Samp, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Script, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Section, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Select, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Small, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Source, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Spacer, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Span, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Strike, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Strong, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Style, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Sub, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Summary, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Sup, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Table, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Tbody, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Td, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Textarea, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Tfoot, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Th, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Thead, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Time, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Title, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Tr, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Track, + AriaDomDefinition { reserved: true }, + ), + ( + AriaQueryHtmlElement::Tt, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::U, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Ul, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Var, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Video, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Wbr, + AriaDomDefinition { reserved: false }, + ), + ( + AriaQueryHtmlElement::Xmp, + AriaDomDefinition { reserved: false }, + ), + ]) + }); diff --git a/packages/aria-query/src/element_role_map.rs b/packages/aria-query/src/element_role_map.rs index 3919f49..f0d2509 100644 --- a/packages/aria-query/src/element_role_map.rs +++ b/packages/aria-query/src/element_role_map.rs @@ -1,45 +1,48 @@ -use std::{collections::HashMap, sync::LazyLock}; +use std::{hash::RandomState, sync::LazyLock}; + +use ordered_hash_map::OrderedHashMap; use crate::{AriaRoleRelationConcept, roles_map::ROLES, types::AriaRoleDefinitionKey}; -pub static ELEMENT_ROLES: LazyLock>> = - LazyLock::new(|| { - let mut element_roles = HashMap::new(); - - for (key, role) in ROLES.iter() { - let concepts = role - .base_concepts - .iter() - .chain(role.related_concepts.iter()); - - for relation in concepts { - if relation.module == Some("HTML".into()) - && let Some(concept) = &relation.concept - { - let element_role_relation = element_roles.get(concept); - let mut roles: Vec = vec![]; - - if let Some(element_role_relation) = element_role_relation { - roles.extend(element_role_relation); - } +pub static ELEMENT_ROLES: LazyLock< + OrderedHashMap, RandomState>, +> = LazyLock::new(|| { + let mut element_roles = OrderedHashMap::with_hasher(RandomState::new()); + + for (key, role) in ROLES.iter() { + let concepts = role + .base_concepts + .iter() + .chain(role.related_concepts.iter()); + + for relation in concepts { + if relation.module == Some("HTML".into()) + && let Some(concept) = &relation.concept + { + let element_role_relation = element_roles.get(concept); + let mut roles: Vec = vec![]; + + if let Some(element_role_relation) = element_role_relation { + roles.extend(element_role_relation); + } - let mut is_unique = true; - for role in &roles { - if *role == *key { - is_unique = false; - break; - } - } - if is_unique { - roles.push(*key); + let mut is_unique = true; + for role in &roles { + if *role == *key { + is_unique = false; + break; } + } + if is_unique { + roles.push(*key); + } - if element_role_relation.is_none() { - element_roles.insert(concept.clone(), roles); - } + if element_role_relation.is_none() { + element_roles.insert(concept.clone(), roles); } } } + } - element_roles - }); + element_roles +}); diff --git a/packages/aria-query/src/etc/roles/abstract.rs b/packages/aria-query/src/etc/roles/abstract.rs index 1599df2..f2d3f76 100644 --- a/packages/aria-query/src/etc/roles/abstract.rs +++ b/packages/aria-query/src/etc/roles/abstract.rs @@ -1,342 +1,345 @@ -use std::{collections::HashMap, sync::LazyLock}; +use std::{collections::HashMap, hash::RandomState, sync::LazyLock}; + +use ordered_hash_map::OrderedHashMap; use crate::types::{ AriaAbstractRole, AriaNameFromSource, AriaProperty, AriaRole, AriaRoleDefinition, AriaRoleDefinitionKey, AriaRoleDefinitionSuperClass, AriaRoleRelation, AriaRoleRelationConcept, }; -pub static ARIA_ABSTRACT_ROLES: LazyLock> = - LazyLock::new(|| { - HashMap::from([ - ( - AriaRoleDefinitionKey::Command, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::new(), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), - ]], - }, - ), - ( - AriaRoleDefinitionKey::Composite, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaActivedescendant, None), - (AriaProperty::AriaDisabled, None), - ]), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), - ]], - }, - ), - ( - AriaRoleDefinitionKey::Input, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([(AriaProperty::AriaDisabled, None)]), - related_concepts: vec![AriaRoleRelation { +pub static ARIA_ABSTRACT_ROLES: LazyLock< + OrderedHashMap, +> = LazyLock::new(|| { + OrderedHashMap::from_iter([ + ( + AriaRoleDefinitionKey::Command, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::new(), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), + ]], + }, + ), + ( + AriaRoleDefinitionKey::Composite, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaActivedescendant, None), + (AriaProperty::AriaDisabled, None), + ]), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), + ]], + }, + ), + ( + AriaRoleDefinitionKey::Input, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([(AriaProperty::AriaDisabled, None)]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "input".into(), + attributes: None, + constraints: None, + }), + module: Some("XForms".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), + ]], + }, + ), + ( + AriaRoleDefinitionKey::Landmark, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::new(), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::Range, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaValuemax, None), + (AriaProperty::AriaValuemin, None), + (AriaProperty::AriaValuenow, None), + ]), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + ]], + }, + ), + ( + AriaRoleDefinitionKey::Roletype, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaAtomic, None), + (AriaProperty::AriaBusy, None), + (AriaProperty::AriaControls, None), + (AriaProperty::AriaCurrent, None), + (AriaProperty::AriaDescribedby, None), + (AriaProperty::AriaDetails, None), + (AriaProperty::AriaDropeffect, None), + (AriaProperty::AriaFlowto, None), + (AriaProperty::AriaGrabbed, None), + (AriaProperty::AriaHidden, None), + (AriaProperty::AriaKeyshortcuts, None), + (AriaProperty::AriaLabel, None), + (AriaProperty::AriaLabelledby, None), + (AriaProperty::AriaLive, None), + (AriaProperty::AriaOwns, None), + (AriaProperty::AriaRelevant, None), + (AriaProperty::AriaRoledescription, None), + ]), + related_concepts: vec![ + AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "role".into(), + attributes: None, + constraints: None, + }), + module: Some("XHTML".into()), + }, + AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "type".into(), + attributes: None, + constraints: None, + }), + module: Some("Dublin Core".into()), + }, + ], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![], + }, + ), + ( + AriaRoleDefinitionKey::Sectionhead, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], + prohibited_props: vec![], + props: HashMap::new(), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + ]], + }, + ), + ( + AriaRoleDefinitionKey::Section, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![], + prohibited_props: vec![], + props: HashMap::new(), + related_concepts: vec![ + AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "frontmatter".into(), + attributes: None, + constraints: None, + }), + module: Some("DTB".into()), + }, + AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "level".into(), + attributes: None, + constraints: None, + }), + module: Some("DTB".into()), + }, + AriaRoleRelation { concept: Some(AriaRoleRelationConcept { - name: "input".into(), + name: "level".into(), attributes: None, constraints: None, }), - module: Some("XForms".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ + module: Some("SMIL".into()), + }, + ], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + ]], + }, + ), + ( + AriaRoleDefinitionKey::Select, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([(AriaProperty::AriaOrientation, None)]), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![ + vec![ AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), - ]], - }, - ), - ( - AriaRoleDefinitionKey::Landmark, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::new(), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::Range, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaValuemax, None), - (AriaProperty::AriaValuemin, None), - (AriaProperty::AriaValuenow, None), - ]), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - ]], - }, - ), - ( - AriaRoleDefinitionKey::Roletype, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaAtomic, None), - (AriaProperty::AriaBusy, None), - (AriaProperty::AriaControls, None), - (AriaProperty::AriaCurrent, None), - (AriaProperty::AriaDescribedby, None), - (AriaProperty::AriaDetails, None), - (AriaProperty::AriaDropeffect, None), - (AriaProperty::AriaFlowto, None), - (AriaProperty::AriaGrabbed, None), - (AriaProperty::AriaHidden, None), - (AriaProperty::AriaKeyshortcuts, None), - (AriaProperty::AriaLabel, None), - (AriaProperty::AriaLabelledby, None), - (AriaProperty::AriaLive, None), - (AriaProperty::AriaOwns, None), - (AriaProperty::AriaRelevant, None), - (AriaProperty::AriaRoledescription, None), - ]), - related_concepts: vec![ - AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "role".into(), - attributes: None, - constraints: None, - }), - module: Some("XHTML".into()), - }, - AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "type".into(), - attributes: None, - constraints: None, - }), - module: Some("Dublin Core".into()), - }, + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Composite), ], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![], - }, - ), - ( - AriaRoleDefinitionKey::Sectionhead, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], - prohibited_props: vec![], - props: HashMap::new(), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ + vec![ AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - ]], - }, - ), - ( - AriaRoleDefinitionKey::Section, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![], - prohibited_props: vec![], - props: HashMap::new(), - related_concepts: vec![ - AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "frontmatter".into(), - attributes: None, - constraints: None, - }), - module: Some("DTB".into()), - }, - AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "level".into(), - attributes: None, - constraints: None, - }), - module: Some("DTB".into()), - }, - AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "level".into(), - attributes: None, - constraints: None, - }), - module: Some("SMIL".into()), - }, - ], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - ]], - }, - ), - ( - AriaRoleDefinitionKey::Select, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([(AriaProperty::AriaOrientation, None)]), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![ - vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Composite), - ], - vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::Role(AriaRole::Group), - ], + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::Role(AriaRole::Group), ], - }, - ), - ( - AriaRoleDefinitionKey::Structure, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![], - prohibited_props: vec![], - props: HashMap::new(), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![AriaRoleDefinitionSuperClass::AbstractRole( - AriaAbstractRole::Roletype, - )]], - }, - ), - ( - AriaRoleDefinitionKey::Widget, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![], - prohibited_props: vec![], - props: HashMap::new(), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![AriaRoleDefinitionSuperClass::AbstractRole( - AriaAbstractRole::Roletype, - )]], - }, - ), - ( - AriaRoleDefinitionKey::Window, - AriaRoleDefinition { - r#abstract: true, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([(AriaProperty::AriaModal, None)]), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![AriaRoleDefinitionSuperClass::AbstractRole( - AriaAbstractRole::Roletype, - )]], - }, - ), - ]) - }); + ], + }, + ), + ( + AriaRoleDefinitionKey::Structure, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![], + prohibited_props: vec![], + props: HashMap::new(), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![AriaRoleDefinitionSuperClass::AbstractRole( + AriaAbstractRole::Roletype, + )]], + }, + ), + ( + AriaRoleDefinitionKey::Widget, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![], + prohibited_props: vec![], + props: HashMap::new(), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![AriaRoleDefinitionSuperClass::AbstractRole( + AriaAbstractRole::Roletype, + )]], + }, + ), + ( + AriaRoleDefinitionKey::Window, + AriaRoleDefinition { + r#abstract: true, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([(AriaProperty::AriaModal, None)]), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![AriaRoleDefinitionSuperClass::AbstractRole( + AriaAbstractRole::Roletype, + )]], + }, + ), + ]) +}); diff --git a/packages/aria-query/src/etc/roles/dpub.rs b/packages/aria-query/src/etc/roles/dpub.rs index 6ee2346..a282be4 100644 --- a/packages/aria-query/src/etc/roles/dpub.rs +++ b/packages/aria-query/src/etc/roles/dpub.rs @@ -1,1438 +1,1441 @@ -use std::{collections::HashMap, sync::LazyLock}; +use std::{collections::HashMap, hash::RandomState, sync::LazyLock}; + +use ordered_hash_map::OrderedHashMap; use crate::types::{ AriaAbstractRole, AriaNameFromSource, AriaProperty, AriaRole, AriaRoleDefinition, AriaRoleDefinitionKey, AriaRoleDefinitionSuperClass, AriaRoleRelation, AriaRoleRelationConcept, }; -pub static ARIA_DPUB_ROLES: LazyLock> = - LazyLock::new(|| { - HashMap::from([ - ( - AriaRoleDefinitionKey::DocAbstract, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "r#abstract vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocAcknowledgments, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "acknowledgments vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocAfterword, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "afterword vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocAppendix, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "appendix vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocBacklink, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: true, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "referrer vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Command), - AriaRoleDefinitionSuperClass::Role(AriaRole::Link), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocBiblioentry, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: true, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "EPUB biblioentry vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![AriaRole::DocBibliography], - required_context_role: vec![AriaRole::DocBibliography], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::Role(AriaRole::Listitem), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocBibliography, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "bibliography vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![vec!["doc-biblioentry".into()]], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocBiblioref, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: true, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "biblioref vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Command), - AriaRoleDefinitionSuperClass::Role(AriaRole::Link), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocChapter, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "chapter vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocColophon, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "colophon vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocConclusion, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "conclusion vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocCover, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "cover vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::Role(AriaRole::Img), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocCredit, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "credit vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocCredits, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "credits vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocDedication, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "dedication vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocEndnote, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "rearnote vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![AriaRole::DocEndnotes], - required_context_role: vec![AriaRole::DocEndnotes], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::Role(AriaRole::Listitem), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocEndnotes, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "rearnotes vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![vec!["doc-endnote".into()]], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocEpigraph, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "epigraph vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocEpilogue, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "epilogue vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocErrata, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "errata vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocExample, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocFootnote, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "footnote vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocForeword, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "foreword vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocGlossary, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "glossary vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![vec!["definition".into()], vec!["term".into()]], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocGlossref, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: true, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "glossref vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Command), - AriaRoleDefinitionSuperClass::Role(AriaRole::Link), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocIndex, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "index vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - AriaRoleDefinitionSuperClass::Role(AriaRole::Navigation), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocIntroduction, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "introduction vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocNoteref, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: true, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "noteref vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Command), - AriaRoleDefinitionSuperClass::Role(AriaRole::Link), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocNotice, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "notice vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::Role(AriaRole::Note), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocPagebreak, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: true, - base_concepts: vec![], - children_presentational: true, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "pagebreak vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::Role(AriaRole::Separator), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocPagefooter, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Prohibited], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaBraillelabel, None), - (AriaProperty::AriaBrailleroledescription, None), - (AriaProperty::AriaDescription, None), - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocPageheader, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Prohibited], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaBraillelabel, None), - (AriaProperty::AriaBrailleroledescription, None), - (AriaProperty::AriaDescription, None), - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocPagelist, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "page-list vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - AriaRoleDefinitionSuperClass::Role(AriaRole::Navigation), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocPart, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: true, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "part vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocPreface, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "preface vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocPrologue, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "prologue vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocPullquote, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "pullquote vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![AriaRoleDefinitionSuperClass::Role(AriaRole::None)]], - }, - ), - ( - AriaRoleDefinitionKey::DocQna, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "qna vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocSubtitle, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "subtitle vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Sectionhead), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocTip, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "help vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::Role(AriaRole::Note), - ]], - }, - ), - ( - AriaRoleDefinitionKey::DocToc, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![AriaRoleRelation { - concept: Some(AriaRoleRelationConcept { - name: "toc vec![EPUB-SSV]".into(), - attributes: None, - constraints: None, - }), - module: Some("EPUB".into()), - }], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), - AriaRoleDefinitionSuperClass::Role(AriaRole::Navigation), - ]], - }, - ), - ]) - }); +pub static ARIA_DPUB_ROLES: LazyLock< + OrderedHashMap, +> = LazyLock::new(|| { + OrderedHashMap::from_iter([ + ( + AriaRoleDefinitionKey::DocAbstract, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "r#abstract vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocAcknowledgments, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "acknowledgments vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocAfterword, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "afterword vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocAppendix, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "appendix vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocBacklink, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: true, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "referrer vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Command), + AriaRoleDefinitionSuperClass::Role(AriaRole::Link), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocBiblioentry, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: true, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "EPUB biblioentry vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![AriaRole::DocBibliography], + required_context_role: vec![AriaRole::DocBibliography], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::Role(AriaRole::Listitem), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocBibliography, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "bibliography vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![vec!["doc-biblioentry".into()]], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocBiblioref, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: true, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "biblioref vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Command), + AriaRoleDefinitionSuperClass::Role(AriaRole::Link), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocChapter, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "chapter vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocColophon, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "colophon vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocConclusion, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "conclusion vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocCover, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "cover vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::Role(AriaRole::Img), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocCredit, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "credit vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocCredits, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "credits vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocDedication, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "dedication vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocEndnote, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "rearnote vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![AriaRole::DocEndnotes], + required_context_role: vec![AriaRole::DocEndnotes], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::Role(AriaRole::Listitem), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocEndnotes, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "rearnotes vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![vec!["doc-endnote".into()]], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocEpigraph, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "epigraph vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocEpilogue, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "epilogue vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocErrata, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "errata vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocExample, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocFootnote, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "footnote vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocForeword, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "foreword vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocGlossary, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "glossary vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![vec!["definition".into()], vec!["term".into()]], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocGlossref, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: true, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "glossref vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Command), + AriaRoleDefinitionSuperClass::Role(AriaRole::Link), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocIndex, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "index vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + AriaRoleDefinitionSuperClass::Role(AriaRole::Navigation), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocIntroduction, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "introduction vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocNoteref, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: true, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "noteref vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Widget), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Command), + AriaRoleDefinitionSuperClass::Role(AriaRole::Link), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocNotice, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "notice vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::Role(AriaRole::Note), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocPagebreak, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: true, + base_concepts: vec![], + children_presentational: true, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "pagebreak vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::Role(AriaRole::Separator), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocPagefooter, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Prohibited], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaBraillelabel, None), + (AriaProperty::AriaBrailleroledescription, None), + (AriaProperty::AriaDescription, None), + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocPageheader, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Prohibited], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaBraillelabel, None), + (AriaProperty::AriaBrailleroledescription, None), + (AriaProperty::AriaDescription, None), + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocPagelist, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "page-list vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + AriaRoleDefinitionSuperClass::Role(AriaRole::Navigation), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocPart, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: true, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "part vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocPreface, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "preface vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocPrologue, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "prologue vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocPullquote, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "pullquote vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![AriaRoleDefinitionSuperClass::Role(AriaRole::None)]], + }, + ), + ( + AriaRoleDefinitionKey::DocQna, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "qna vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocSubtitle, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "subtitle vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Sectionhead), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocTip, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "help vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::Role(AriaRole::Note), + ]], + }, + ), + ( + AriaRoleDefinitionKey::DocToc, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![AriaRoleRelation { + concept: Some(AriaRoleRelationConcept { + name: "toc vec![EPUB-SSV]".into(), + attributes: None, + constraints: None, + }), + module: Some("EPUB".into()), + }], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Landmark), + AriaRoleDefinitionSuperClass::Role(AriaRole::Navigation), + ]], + }, + ), + ]) +}); diff --git a/packages/aria-query/src/etc/roles/graphics.rs b/packages/aria-query/src/etc/roles/graphics.rs index 123d0b8..1c46e83 100644 --- a/packages/aria-query/src/etc/roles/graphics.rs +++ b/packages/aria-query/src/etc/roles/graphics.rs @@ -1,155 +1,158 @@ -use std::{collections::HashMap, sync::LazyLock}; +use std::{collections::HashMap, hash::RandomState, sync::LazyLock}; + +use ordered_hash_map::OrderedHashMap; use crate::types::{ AriaAbstractRole, AriaNameFromSource, AriaProperty, AriaRole, AriaRoleDefinition, AriaRoleDefinitionKey, AriaRoleDefinitionSuperClass, AriaRoleRelation, AriaRoleRelationConcept, }; -pub static ARIA_GRAPHICS_ROLES: LazyLock> = - LazyLock::new(|| { - HashMap::from([ - ( - AriaRoleDefinitionKey::GraphicsDocument, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: true, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![ - AriaRoleRelation { - module: Some("GRAPHICS".into()), - concept: Some(AriaRoleRelationConcept { - name: "graphics-object".into(), - attributes: None, - constraints: None, - }), - }, - AriaRoleRelation { - module: Some("ARIA".into()), - concept: Some(AriaRoleRelationConcept { - name: "img".into(), - attributes: None, - constraints: None, - }), - }, - AriaRoleRelation { - module: Some("ARIA".into()), - concept: Some(AriaRoleRelationConcept { - name: "article".into(), - attributes: None, - constraints: None, - }), - }, - ], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::Role(AriaRole::Document), - ]], - }, - ), - ( - AriaRoleDefinitionKey::GraphicsObject, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: false, - base_concepts: vec![], - children_presentational: false, - name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![ - AriaRoleRelation { - module: Some("GRAPHICS".into()), - concept: Some(AriaRoleRelationConcept { - name: "graphics-document".into(), - attributes: None, - constraints: None, - }), - }, - AriaRoleRelation { - module: Some("ARIA".into()), - concept: Some(AriaRoleRelationConcept { - name: "group".into(), - attributes: None, - constraints: None, - }), - }, - AriaRoleRelation { - module: Some("ARIA".into()), - concept: Some(AriaRoleRelationConcept { - name: "img".into(), - attributes: None, - constraints: None, - }), - }, - AriaRoleRelation { - module: Some("GRAPHICS".into()), - concept: Some(AriaRoleRelationConcept { - name: "graphics-symbol".into(), - attributes: None, - constraints: None, - }), - }, - ], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::Role(AriaRole::Group), - ]], - }, - ), - ( - AriaRoleDefinitionKey::GraphicsSymbol, - AriaRoleDefinition { - r#abstract: false, - accessible_name_required: true, - base_concepts: vec![], - children_presentational: true, - name_from: vec![AriaNameFromSource::Author], - prohibited_props: vec![], - props: HashMap::from([ - (AriaProperty::AriaDisabled, None), - (AriaProperty::AriaErrormessage, None), - (AriaProperty::AriaExpanded, None), - (AriaProperty::AriaHaspopup, None), - (AriaProperty::AriaInvalid, None), - ]), - related_concepts: vec![], - require_context_role: vec![], - required_context_role: vec![], - required_owned_elements: vec![], - required_props: HashMap::new(), - super_class: vec![vec![ - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), - AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), - AriaRoleDefinitionSuperClass::Role(AriaRole::Img), - ]], - }, - ), - ]) - }); +pub static ARIA_GRAPHICS_ROLES: LazyLock< + OrderedHashMap, +> = LazyLock::new(|| { + OrderedHashMap::from_iter([ + ( + AriaRoleDefinitionKey::GraphicsDocument, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: true, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![ + AriaRoleRelation { + module: Some("GRAPHICS".into()), + concept: Some(AriaRoleRelationConcept { + name: "graphics-object".into(), + attributes: None, + constraints: None, + }), + }, + AriaRoleRelation { + module: Some("ARIA".into()), + concept: Some(AriaRoleRelationConcept { + name: "img".into(), + attributes: None, + constraints: None, + }), + }, + AriaRoleRelation { + module: Some("ARIA".into()), + concept: Some(AriaRoleRelationConcept { + name: "article".into(), + attributes: None, + constraints: None, + }), + }, + ], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::Role(AriaRole::Document), + ]], + }, + ), + ( + AriaRoleDefinitionKey::GraphicsObject, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: false, + base_concepts: vec![], + children_presentational: false, + name_from: vec![AriaNameFromSource::Author, AriaNameFromSource::Contents], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![ + AriaRoleRelation { + module: Some("GRAPHICS".into()), + concept: Some(AriaRoleRelationConcept { + name: "graphics-document".into(), + attributes: None, + constraints: None, + }), + }, + AriaRoleRelation { + module: Some("ARIA".into()), + concept: Some(AriaRoleRelationConcept { + name: "group".into(), + attributes: None, + constraints: None, + }), + }, + AriaRoleRelation { + module: Some("ARIA".into()), + concept: Some(AriaRoleRelationConcept { + name: "img".into(), + attributes: None, + constraints: None, + }), + }, + AriaRoleRelation { + module: Some("GRAPHICS".into()), + concept: Some(AriaRoleRelationConcept { + name: "graphics-symbol".into(), + attributes: None, + constraints: None, + }), + }, + ], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::Role(AriaRole::Group), + ]], + }, + ), + ( + AriaRoleDefinitionKey::GraphicsSymbol, + AriaRoleDefinition { + r#abstract: false, + accessible_name_required: true, + base_concepts: vec![], + children_presentational: true, + name_from: vec![AriaNameFromSource::Author], + prohibited_props: vec![], + props: HashMap::from([ + (AriaProperty::AriaDisabled, None), + (AriaProperty::AriaErrormessage, None), + (AriaProperty::AriaExpanded, None), + (AriaProperty::AriaHaspopup, None), + (AriaProperty::AriaInvalid, None), + ]), + related_concepts: vec![], + require_context_role: vec![], + required_context_role: vec![], + required_owned_elements: vec![], + required_props: HashMap::new(), + super_class: vec![vec![ + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Roletype), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Structure), + AriaRoleDefinitionSuperClass::AbstractRole(AriaAbstractRole::Section), + AriaRoleDefinitionSuperClass::Role(AriaRole::Img), + ]], + }, + ), + ]) +}); diff --git a/packages/aria-query/src/etc/roles/literal.rs b/packages/aria-query/src/etc/roles/literal.rs index f1f3431..004286d 100644 --- a/packages/aria-query/src/etc/roles/literal.rs +++ b/packages/aria-query/src/etc/roles/literal.rs @@ -1,4 +1,6 @@ -use std::{collections::HashMap, sync::LazyLock}; +use std::{collections::HashMap, hash::RandomState, sync::LazyLock}; + +use ordered_hash_map::OrderedHashMap; use crate::types::{ AriaAbstractRole, AriaNameFromSource, AriaProperty, AriaRole, AriaRoleDefinition, @@ -7,9 +9,10 @@ use crate::types::{ AriaRoleRelationConceptConstraint, }; -pub static ARIA_LITERAL_ROLES: LazyLock> = - LazyLock::new(|| { - HashMap::from([ +pub static ARIA_LITERAL_ROLES: LazyLock< + OrderedHashMap, +> = LazyLock::new(|| { + OrderedHashMap::from_iter([ ( AriaRoleDefinitionKey::Alertdialog, AriaRoleDefinition { @@ -3920,4 +3923,4 @@ pub static ARIA_LITERAL_ROLES: LazyLock>> = - LazyLock::new(|| { - let mut role_elements = HashMap::new(); +pub static ROLE_ELEMENTS: LazyLock< + OrderedHashMap, RandomState>, +> = LazyLock::new(|| { + let mut role_elements = OrderedHashMap::with_hasher(RandomState::new()); - for (key, role) in ROLES.iter() { - let mut relation_concepts: Vec = vec![]; + for (key, role) in ROLES.iter() { + let mut relation_concepts: Vec = vec![]; - let concepts = role - .base_concepts - .iter() - .chain(role.related_concepts.iter()); + let concepts = role + .base_concepts + .iter() + .chain(role.related_concepts.iter()); - for relation in concepts { - if relation.module == Some("HTML".into()) - && let Some(concept) = &relation.concept - { - relation_concepts.push(concept.clone()); - } + for relation in concepts { + if relation.module == Some("HTML".into()) + && let Some(concept) = &relation.concept + { + relation_concepts.push(concept.clone()); } + } - if !relation_concepts.is_empty() { - role_elements.insert(*key, relation_concepts); - } + if !relation_concepts.is_empty() { + role_elements.insert(*key, relation_concepts); } + } - role_elements - }); + role_elements +}); diff --git a/packages/aria-query/src/roles_map.rs b/packages/aria-query/src/roles_map.rs index 74a4c04..124056e 100644 --- a/packages/aria-query/src/roles_map.rs +++ b/packages/aria-query/src/roles_map.rs @@ -1,4 +1,6 @@ -use std::{collections::HashMap, sync::LazyLock}; +use std::{hash::RandomState, sync::LazyLock}; + +use ordered_hash_map::OrderedHashMap; use crate::{ etc::roles::{ @@ -8,7 +10,7 @@ use crate::{ types::{AriaRoleDefinition, AriaRoleDefinitionKey, AriaRoleDefinitionSuperClass}, }; -pub static ROLES: LazyLock> = +pub static ROLES: LazyLock> = LazyLock::new(|| { let role_definitions = (*ARIA_ABSTRACT_ROLES) .clone() @@ -17,7 +19,7 @@ pub static ROLES: LazyLock> = .chain(ARIA_DPUB_ROLES.clone()) .chain(ARIA_GRAPHICS_ROLES.clone()); - let immutable_roles = HashMap::from_iter(role_definitions); + let immutable_roles = OrderedHashMap::from_iter(role_definitions); let mut roles = immutable_roles.clone(); for role_definition in roles.values_mut() { @@ -25,7 +27,9 @@ pub static ROLES: LazyLock> = for super_class in super_classes { let super_class_role = immutable_roles.iter().find(|(name, _)| match super_class { - AriaRoleDefinitionSuperClass::AbstractRole(_) => false, + AriaRoleDefinitionSuperClass::AbstractRole(role) => { + **name == AriaRoleDefinitionKey::from(*role) + } AriaRoleDefinitionSuperClass::Role(role) => { **name == AriaRoleDefinitionKey::from(*role) }