diff --git a/Sources/HTMLKit/Abstraction/Attributes/BasicAttributes.swift b/Sources/HTMLKit/Abstraction/Attributes/BasicAttributes.swift
index 28410196..de0091fc 100644
--- a/Sources/HTMLKit/Abstraction/Attributes/BasicAttributes.swift
+++ b/Sources/HTMLKit/Abstraction/Attributes/BasicAttributes.swift
@@ -2813,7 +2813,22 @@ extension ReversedAttribute where Self: EmptyNode {
@_documentation(visibility: internal)
public protocol RoleAttribute: Attribute {
- /// Describe the role of an element.
+ /// Describe the roles of an element.
+ ///
+ /// ```swift
+ /// Anchor {
+ /// "Lorem ipsum..."
+ /// }
+ /// .reference("https://...")
+ /// .role([.button])
+ /// ```
+ ///
+ /// - Parameter value: The role to inform about.
+ ///
+ /// - Returns: The element
+ func role(_ values: [Values.Role]) -> Self
+
+ /// Describe the roles of an element.
///
/// ```swift
/// Anchor {
@@ -2826,7 +2841,7 @@ public protocol RoleAttribute: Attribute {
/// - Parameter value: The role to inform about.
///
/// - Returns: The element
- func role(_ value: Values.Role) -> Self
+ func role(_ values: Values.Role...) -> Self
}
extension RoleAttribute where Self: ContentNode {
diff --git a/Sources/HTMLKit/Abstraction/Elements/BasicElements.swift b/Sources/HTMLKit/Abstraction/Elements/BasicElements.swift
index e08dde88..f8eda94d 100644
--- a/Sources/HTMLKit/Abstraction/Elements/BasicElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/BasicElements.swift
@@ -259,8 +259,12 @@ extension Html: GlobalAttributes, GlobalEventAttributes {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Html {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Html {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Html {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/BodyElements.swift b/Sources/HTMLKit/Abstraction/Elements/BodyElements.swift
index a5131933..27571461 100644
--- a/Sources/HTMLKit/Abstraction/Elements/BodyElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/BodyElements.swift
@@ -343,8 +343,12 @@ extension Article: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityA
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Article {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Article {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Article {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -877,8 +881,12 @@ extension Section: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityA
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Section {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Section {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Section {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1413,8 +1421,12 @@ extension Navigation: GlobalAttributes, GlobalEventAttributes, GlobalAccessibili
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Navigation {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Navigation {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Navigation {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1945,8 +1957,12 @@ extension Aside: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Aside {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Aside {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Aside {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -2474,8 +2490,12 @@ extension Heading1: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Heading1 {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Heading1 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Heading1 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -3011,8 +3031,12 @@ extension Heading2: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Heading2 {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Heading2 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Heading2 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -3549,8 +3573,12 @@ extension Heading3: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Heading3 {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Heading3 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Heading3 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -4087,8 +4115,12 @@ extension Heading4: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Heading4 {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Heading4 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Heading4 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -4625,8 +4657,12 @@ extension Heading5: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Heading5 {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Heading5 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Heading5 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -5163,8 +5199,12 @@ extension Heading6: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Heading6 {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Heading6 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Heading6 {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -5705,9 +5745,13 @@ extension HeadingGroup: GlobalAttributes, GlobalEventAttributes, GlobalAccessibi
public func nonce(_ value: String) -> HeadingGroup {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
-
- public func role(_ value: Values.Role) -> HeadingGroup {
- return mutate(role: .init(value.rawValue, context: .trusted))
+
+ public func role(_ values: [Values.Role]) -> HeadingGroup {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> HeadingGroup {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -6236,8 +6280,12 @@ extension Header: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Header {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Header {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Header {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -6764,8 +6812,12 @@ extension Footer: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Footer {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Footer {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Footer {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -7299,8 +7351,12 @@ extension Address: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityA
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Address {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Address {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Address {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -7828,8 +7884,12 @@ extension Paragraph: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilit
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Paragraph {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Paragraph {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Paragraph {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -8361,8 +8421,12 @@ extension HorizontalRule: GlobalAttributes, GlobalEventAttributes, GlobalAccessi
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> HorizontalRule {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> HorizontalRule {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> HorizontalRule {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -8896,8 +8960,12 @@ extension PreformattedText: GlobalAttributes, GlobalEventAttributes, GlobalAcces
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> PreformattedText {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> PreformattedText {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> PreformattedText {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -9425,8 +9493,12 @@ extension Blockquote: GlobalAttributes, GlobalEventAttributes, GlobalAccessibili
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Blockquote {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Blockquote {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Blockquote {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -9972,8 +10044,12 @@ extension OrderedList: GlobalAttributes, GlobalEventAttributes, GlobalAccessibil
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> OrderedList {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> OrderedList {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> OrderedList {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -10521,8 +10597,12 @@ extension UnorderedList: GlobalAttributes, GlobalEventAttributes, GlobalAccessib
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> UnorderedList {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> UnorderedList {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> UnorderedList {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -11068,8 +11148,12 @@ extension Menu: GlobalAttributes {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Menu {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Menu {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Menu {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -11354,8 +11438,12 @@ extension DescriptionList: GlobalAttributes, GlobalEventAttributes, GlobalAccess
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> DescriptionList {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> DescriptionList {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> DescriptionList {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -11888,8 +11976,12 @@ extension Figure: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Figure {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Figure {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Figure {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -12419,8 +12511,12 @@ extension Anchor: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Anchor {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Anchor {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Anchor {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -13003,8 +13099,12 @@ extension Emphasize: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilit
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Emphasize {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Emphasize {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Emphasize {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -13534,8 +13634,12 @@ extension Strong: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Strong {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Strong {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Strong {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -14065,8 +14169,12 @@ extension Small: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Small {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Small {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Small {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -14605,8 +14713,12 @@ extension StrikeThrough: GlobalAttributes, GlobalEventAttributes {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> StrikeThrough {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> StrikeThrough {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> StrikeThrough {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -14923,8 +15035,12 @@ extension Main: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Main {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Main {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Main {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -15459,8 +15575,12 @@ extension Search: GlobalAttributes {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Search {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Search {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Search {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -15738,8 +15858,12 @@ extension Division: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Division {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Division {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Division {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -16397,8 +16521,12 @@ extension Definition: GlobalAttributes, GlobalEventAttributes, GlobalAccessibili
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Definition {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Definition {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Definition {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -16929,8 +17057,12 @@ extension Cite: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Cite {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Cite {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Cite {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -17460,8 +17592,12 @@ extension ShortQuote: GlobalAttributes, GlobalEventAttributes, GlobalAccessibili
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> ShortQuote {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> ShortQuote {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> ShortQuote {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -17996,8 +18132,12 @@ extension Abbreviation: GlobalAttributes, GlobalEventAttributes, GlobalAccessibi
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Abbreviation {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Abbreviation {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Abbreviation {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -18528,8 +18668,12 @@ extension Ruby: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Ruby {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Ruby {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Ruby {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -19062,8 +19206,12 @@ extension Data: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Data {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Data {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Data {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -19608,8 +19756,12 @@ extension Time: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Time {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Time {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Time {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -20145,8 +20297,12 @@ extension Code: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Code {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Code {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Code {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -20678,8 +20834,12 @@ extension Variable: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Variable {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Variable {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Variable {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -21207,8 +21367,12 @@ extension SampleOutput: GlobalAttributes, GlobalEventAttributes, GlobalAccessibi
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> SampleOutput {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> SampleOutput {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> SampleOutput {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -21740,8 +21904,12 @@ extension KeyboardInput: GlobalAttributes, GlobalEventAttributes, GlobalAccessib
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> KeyboardInput {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> KeyboardInput {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> KeyboardInput {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -22272,8 +22440,12 @@ extension Subscript: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilit
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Subscript {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Subscript {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Subscript {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -22805,8 +22977,12 @@ extension Superscript: GlobalAttributes, GlobalEventAttributes, GlobalAccessibil
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Superscript {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Superscript {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Superscript {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -23338,8 +23514,12 @@ extension Italic: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Italic {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Italic {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Italic {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -23880,8 +24060,12 @@ extension Bold: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Bold {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Bold {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Bold {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -24422,8 +24606,12 @@ extension Underline: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilit
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Underline {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Underline {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Underline {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -24964,8 +25152,12 @@ extension Mark: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Mark {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Mark {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Mark {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -25497,8 +25689,12 @@ extension Bdi: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttri
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Bdi {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Bdi {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Bdi {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -26018,8 +26214,12 @@ extension Bdo: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttri
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Bdo {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Bdo {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Bdo {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -26547,8 +26747,12 @@ extension Span: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Span {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Span {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Span {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -27073,8 +27277,12 @@ extension LineBreak: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilit
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> LineBreak {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> LineBreak {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> LineBreak {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -27591,8 +27799,12 @@ extension WordBreak: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilit
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> WordBreak {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> WordBreak {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> WordBreak {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -28120,8 +28332,12 @@ extension InsertedText: GlobalAttributes, GlobalEventAttributes, GlobalAccessibi
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> InsertedText {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> InsertedText {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> InsertedText {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -28657,8 +28873,12 @@ extension DeletedText: GlobalAttributes, GlobalEventAttributes, GlobalAccessibil
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> DeletedText {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> DeletedText {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> DeletedText {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -29199,8 +29419,12 @@ extension Picture: GlobalAttributes, GlobalEventAttributes {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Picture {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Picture {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Picture {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -29494,8 +29718,12 @@ extension Image: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Image {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Image {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Image {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -30093,9 +30321,13 @@ extension InlineFrame: GlobalAttributes, GlobalEventAttributes, GlobalAccessibil
public func nonce(_ value: String) -> InlineFrame {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
-
- public func role(_ value: Values.Role) -> InlineFrame {
- return mutate(role: .init(value.rawValue, context: .trusted))
+
+ public func role(_ values: [Values.Role]) -> InlineFrame {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> InlineFrame {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -30654,8 +30886,12 @@ extension Embed: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Embed {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Embed {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Embed {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -31204,8 +31440,12 @@ extension Object: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Object {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Object {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Object {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -31759,8 +31999,12 @@ extension Video: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Video {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Video {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Video {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -32357,8 +32601,12 @@ extension Audio: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Audio {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Audio {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Audio {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -32935,8 +33183,12 @@ extension Map: GlobalAttributes, GlobalEventAttributes, NameAttribute {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Map {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Map {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Map {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -33244,8 +33496,12 @@ extension Form: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Form {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Form {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Form {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -33821,8 +34077,12 @@ extension DataList: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> DataList {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> DataList {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> DataList {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -34352,8 +34612,12 @@ extension Output: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Output {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Output {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Output {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -34895,8 +35159,12 @@ extension Progress: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Progress {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Progress {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Progress {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -35445,8 +35713,12 @@ extension Meter: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Meter {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Meter {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Meter {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -36012,8 +36284,12 @@ extension Details: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityA
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Details {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Details {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Details {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -36568,9 +36844,13 @@ extension Dialog: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
public func nonce(_ value: String) -> Dialog {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
-
- public func role(_ value: Values.Role) -> Dialog {
- return mutate(role: .init(value.rawValue, context: .trusted))
+
+ public func role(_ values: [Values.Role]) -> Dialog {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Dialog {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -37133,8 +37413,12 @@ extension Script: GlobalAttributes, GlobalEventAttributes, AsynchronouslyAttribu
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Script {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Script {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Script {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -37461,9 +37745,13 @@ extension NoScript: GlobalAttributes, GlobalEventAttributes {
public func nonce(_ value: String) -> NoScript {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
-
- public func role(_ value: Values.Role) -> NoScript {
- return mutate(role: .init(value.rawValue, context: .trusted))
+
+ public func role(_ values: [Values.Role]) -> NoScript {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> NoScript {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -37768,8 +38056,12 @@ extension Template: GlobalAttributes, GlobalEventAttributes, ShadowRootModeAttri
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Template {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Template {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Template {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -38067,8 +38359,12 @@ extension Canvas: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Canvas {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Canvas {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Canvas {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -38611,8 +38907,12 @@ extension Table: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Table {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Table {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Table {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -39036,7 +39336,7 @@ public struct Vector: ContentNode, HtmlElement, BodyElement, FormElement, Figure
}
}
-extension Vector: GlobalVectorAttributes, WidthAttribute, HeightAttribute, ViewBoxAttribute, NamespaceAttribute {
+extension Vector: GlobalVectorAttributes, GlobalAccessibilityAttributes, WidthAttribute, HeightAttribute, ViewBoxAttribute, NamespaceAttribute, RoleAttribute {
public func id(_ value: String) -> Vector {
return self.mutate(id: .init(value, context: .tainted(.html)))
@@ -39151,6 +39451,14 @@ extension Vector: GlobalVectorAttributes, WidthAttribute, HeightAttribute, ViewB
return self.mutate(namespace: .init(value, context: .tainted(.html)))
}
+ public func role(_ values: [Values.Role]) -> Vector {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Vector {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
public func custom(key: String, value: String, context: EscapeContext = .tainted(.html)) -> Vector {
return mutate(key: key, value: .init(value, context: context))
}
@@ -39174,6 +39482,137 @@ extension Vector: GlobalVectorAttributes, WidthAttribute, HeightAttribute, ViewB
public func custom(key: String, value: EnvironmentValue, context: EscapeContext = .tainted(.html)) -> Vector {
return mutate(key: key, value: .init(value, context: context))
}
+
+ public func accessibilityAtomic(_ value: Bool = true) -> Vector {
+ return mutate(ariaatomic: .init(value, context: .trusted))
+ }
+
+ public func accessibilityBusy(_ value: Bool = true) -> Vector {
+ return mutate(ariabusy: .init(value, context: .trusted))
+ }
+
+ public func accessibilityControls(_ ids: [String]) -> Vector {
+ return mutate(ariacontrols: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityControls(_ ids: String...) -> Vector {
+ return mutate(ariacontrols: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityCurrent(_ value: Values.Accessibility.Current) -> Vector {
+ return mutate(ariacurrent: .init(value.rawValue, context: .trusted))
+ }
+
+ public func accessibilityCurrent(_ value: Bool = true) -> Vector {
+ return mutate(ariacurrent: .init(value, context: .trusted))
+ }
+
+ public func accessibilityDescriptions(_ ids: [String]) -> Vector {
+ return mutate(ariadescribedby: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityDescriptions(_ ids: String...) -> Vector {
+ return mutate(ariadescribedby: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityDetail(_ id: String) -> Vector {
+ return mutate(ariadetails: .init(id, context: .tainted(.html)))
+ }
+
+ public func accessibilityDisabled(_ value: Bool = true) -> Vector {
+ return mutate(ariadisabled: .init(value, context: .trusted))
+ }
+
+ public func accessibilityFlow(_ ids: [String]) -> Vector {
+ return mutate(ariaflowto: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityFlow(_ ids: String...) -> Vector {
+ return mutate(ariaflowto: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityPopup(_ value: Values.Accessibility.Popup) -> Vector {
+ return mutate(ariahaspopup: .init(value.rawValue, context: .trusted))
+ }
+
+ public func accessibilityHidden(_ value: Bool = true) -> Vector {
+ return mutate(ariahidden: .init(value, context: .trusted))
+ }
+
+ public func accessibilityInvalid(_ value: Values.Accessibility.Invalid) -> Vector {
+ return mutate(ariainvalid: .init(value.rawValue, context: .trusted))
+ }
+
+ public func accessibilityInvalid(_ value: Bool = true, message id: String? = nil) -> Vector {
+
+ if let id = id {
+ return mutate(ariainvalid: .init(value, context: .trusted)).mutate(ariaerrormessage: .init(id, context: .tainted(.html)))
+ }
+
+ return mutate(ariainvalid: .init(value, context: .trusted))
+ }
+
+ public func accessibilityShortcuts(_ values: [KeyboardShortcut]) -> Vector {
+ return mutate(ariakeyshortcuts: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func accessibilityShortcuts(_ values: KeyboardShortcut...) -> Vector {
+ return mutate(ariakeyshortcuts: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ @_disfavoredOverload
+ public func accessibilityLabel(_ value: String) -> Vector {
+ return mutate(arialabel: .init(value, context: .tainted(.html)))
+ }
+
+ public func accessibilityLabel(_ localizedKey: LocalizedStringKey, tableName: String? = nil) -> Vector {
+ return mutate(arialabel: .init(LocalizedString(key: localizedKey, table: tableName), context: .tainted(.html)))
+ }
+
+ public func accessibilityLabel(verbatim value: String) -> Vector {
+ return mutate(arialabel: .init(value, context: .tainted(.html)))
+ }
+
+ public func accessibilityLabels(_ ids: [String]) -> Vector {
+ return mutate(arialabeledby: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityLabels(_ ids: String...) -> Vector {
+ return mutate(arialabeledby: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityLive(_ value: Values.Accessibility.Live) -> Vector {
+ return mutate(arialive: .init(value.rawValue, context: .trusted))
+ }
+
+ public func accessibilityOwns(_ ids: [String]) -> Vector {
+ return mutate(ariaowns: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityOwns(_ ids: String...) -> Vector {
+ return mutate(ariaowns: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
+ }
+
+ public func accessibilityRelevant(_ values: [Values.Accessibility.Relevant]) -> Vector {
+ return mutate(ariarelevant: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func accessibilityRelevant(_ values: Values.Accessibility.Relevant...) -> Vector {
+ return mutate(ariarelevant: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ @_disfavoredOverload
+ public func accessibilityRoleDescription(_ value: String) -> Vector {
+ return mutate(ariaroledescription: .init(value, context: .tainted(.html)))
+ }
+
+ public func accessibilityRoleDescription(_ localizedKey: LocalizedStringKey, tableName: String? = nil) -> Vector {
+ return mutate(ariaroledescription: .init(LocalizedString(key: localizedKey, table: tableName), context: .tainted(.html)))
+ }
+
+ public func accessibilityRoleDescription(verbatim value: String) -> Vector {
+ return mutate(ariaroledescription: .init(value, context: .tainted(.html)))
+ }
}
/// An element that represents a shadow method.
@@ -39379,8 +39818,12 @@ extension Slot: GlobalAttributes, NameAttribute {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Slot {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Slot {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Slot {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift b/Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift
index 7f417f84..7ab2159a 100644
--- a/Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift
@@ -207,8 +207,12 @@ extension TermName: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> TermName {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> TermName {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> TermName {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -741,8 +745,12 @@ extension TermDefinition: GlobalAttributes, GlobalEventAttributes, GlobalAccessi
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> TermDefinition {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> TermDefinition {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> TermDefinition {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/FigureElements.swift b/Sources/HTMLKit/Abstraction/Elements/FigureElements.swift
index c6bb216a..90ec2744 100644
--- a/Sources/HTMLKit/Abstraction/Elements/FigureElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/FigureElements.swift
@@ -203,8 +203,12 @@ extension FigureCaption: GlobalAttributes, GlobalEventAttributes, GlobalAccessib
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> FigureCaption {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> FigureCaption {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> FigureCaption {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/FormElements.swift b/Sources/HTMLKit/Abstraction/Elements/FormElements.swift
index d95975c1..91c24487 100644
--- a/Sources/HTMLKit/Abstraction/Elements/FormElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/FormElements.swift
@@ -185,8 +185,12 @@ extension Input: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Input {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Input {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Input {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -840,8 +844,12 @@ extension Label: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAtt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Label {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Label {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Label {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1391,8 +1399,12 @@ extension Select: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Select {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Select {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Select {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1875,8 +1887,12 @@ extension TextArea: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> TextArea {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> TextArea {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> TextArea {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -2492,8 +2508,12 @@ extension Button: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Button {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Button {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Button {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -3107,8 +3127,12 @@ extension Fieldset: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Fieldset {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Fieldset {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Fieldset {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/HeadElements.swift b/Sources/HTMLKit/Abstraction/Elements/HeadElements.swift
index cd2d9d97..c4a9fd00 100644
--- a/Sources/HTMLKit/Abstraction/Elements/HeadElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/HeadElements.swift
@@ -196,8 +196,12 @@ extension Title: GlobalAttributes, GlobalEventAttributes {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Title {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Title {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Title {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -493,8 +497,12 @@ extension Base: GlobalAttributes, GlobalEventAttributes, ReferenceAttribute, Tar
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Base {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Base {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Base {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -788,8 +796,12 @@ extension Meta: GlobalAttributes, GlobalEventAttributes, ContentAttribute, NameA
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Meta {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Meta {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Meta {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1126,8 +1138,12 @@ extension Style: GlobalAttributes, GlobalEventAttributes, TypeAttribute, MediaAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Style {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Style {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Style {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1448,8 +1464,12 @@ extension Link: GlobalAttributes, GlobalEventAttributes, ReferenceAttribute, Ref
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Link {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Link {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Link {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/HtmlElements.swift b/Sources/HTMLKit/Abstraction/Elements/HtmlElements.swift
index 45b7129c..a148f760 100644
--- a/Sources/HTMLKit/Abstraction/Elements/HtmlElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/HtmlElements.swift
@@ -194,8 +194,12 @@ extension Head: GlobalAttributes, GlobalEventAttributes {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Head {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Head {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Head {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -498,8 +502,12 @@ extension Body: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Body {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Body {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Body {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/InputElements.swift b/Sources/HTMLKit/Abstraction/Elements/InputElements.swift
index 6c2c40c6..330fc051 100644
--- a/Sources/HTMLKit/Abstraction/Elements/InputElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/InputElements.swift
@@ -209,8 +209,12 @@ extension OptionGroup: GlobalAttributes, GlobalEventAttributes, GlobalAccessibil
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> OptionGroup {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> OptionGroup {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> OptionGroup {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -763,8 +767,12 @@ extension Option: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Option {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Option {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Option {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1349,8 +1357,12 @@ extension Legend: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAt
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Legend {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Legend {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Legend {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1883,8 +1895,12 @@ extension Summary: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityA
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Summary {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Summary {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Summary {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/ListElements.swift b/Sources/HTMLKit/Abstraction/Elements/ListElements.swift
index b7a3b824..afddf0c4 100644
--- a/Sources/HTMLKit/Abstraction/Elements/ListElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/ListElements.swift
@@ -203,8 +203,12 @@ extension ListItem: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> ListItem {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> ListItem {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> ListItem {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/MapElements.swift b/Sources/HTMLKit/Abstraction/Elements/MapElements.swift
index c36882f2..5cb6863c 100644
--- a/Sources/HTMLKit/Abstraction/Elements/MapElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/MapElements.swift
@@ -191,8 +191,12 @@ extension Area: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityAttr
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Area {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Area {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Area {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/MediaElements.swift b/Sources/HTMLKit/Abstraction/Elements/MediaElements.swift
index c9599c68..b997b33d 100644
--- a/Sources/HTMLKit/Abstraction/Elements/MediaElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/MediaElements.swift
@@ -184,8 +184,12 @@ extension Source: GlobalAttributes, GlobalEventAttributes, TypeAttribute, Source
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Source {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Source {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Source {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -529,8 +533,12 @@ extension Track: GlobalAttributes, GlobalEventAttributes, KindAttribute, SourceA
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Track {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Track {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Track {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/RubyElements.swift b/Sources/HTMLKit/Abstraction/Elements/RubyElements.swift
index 24053bd5..d788f67a 100644
--- a/Sources/HTMLKit/Abstraction/Elements/RubyElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/RubyElements.swift
@@ -205,8 +205,12 @@ extension RubyText: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> RubyText {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> RubyText {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> RubyText {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -743,8 +747,12 @@ extension RubyPronunciation: GlobalAttributes, GlobalEventAttributes, GlobalAcce
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> RubyPronunciation {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> RubyPronunciation {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> RubyPronunciation {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Abstraction/Elements/TableElements.swift b/Sources/HTMLKit/Abstraction/Elements/TableElements.swift
index bff14b86..39eed5dc 100644
--- a/Sources/HTMLKit/Abstraction/Elements/TableElements.swift
+++ b/Sources/HTMLKit/Abstraction/Elements/TableElements.swift
@@ -228,8 +228,12 @@ extension Caption: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilityA
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Caption {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Caption {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Caption {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -761,8 +765,12 @@ extension ColumnGroup: GlobalAttributes, GlobalEventAttributes, SpanAttribute {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> ColumnGroup {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> ColumnGroup {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> ColumnGroup {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1059,8 +1067,12 @@ extension Column: GlobalAttributes, GlobalEventAttributes, SpanAttribute {
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> Column {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> Column {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> Column {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1367,8 +1379,12 @@ extension TableBody: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilit
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> TableBody {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> TableBody {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> TableBody {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -1917,8 +1933,12 @@ extension TableHead: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilit
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> TableHead {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> TableHead {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> TableHead {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -2467,8 +2487,12 @@ extension TableFoot: GlobalAttributes, GlobalEventAttributes, GlobalAccessibilit
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> TableFoot {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> TableFoot {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> TableFoot {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -3003,8 +3027,12 @@ extension TableRow: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> TableRow {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> TableRow {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> TableRow {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -3553,8 +3581,12 @@ extension DataCell: GlobalAttributes, GlobalEventAttributes, GlobalAccessibility
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> DataCell {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> DataCell {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> DataCell {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
@@ -4110,8 +4142,12 @@ extension HeaderCell: GlobalAttributes, GlobalEventAttributes, GlobalAccessibili
return mutate(nonce: .init(value, context: .tainted(.html)))
}
- public func role(_ value: Values.Role) -> HeaderCell {
- return mutate(role: .init(value.rawValue, context: .trusted))
+ public func role(_ values: [Values.Role]) -> HeaderCell {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ public func role(_ values: Values.Role...) -> HeaderCell {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
@available(*, unavailable, message: "Use the spellcheck(_:) modifier instead.")
diff --git a/Sources/HTMLKit/Framework/Rendering/EnumeratedList.swift b/Sources/HTMLKit/Framework/Rendering/EnumeratedList.swift
index 33e1e0d5..88e61a85 100644
--- a/Sources/HTMLKit/Framework/Rendering/EnumeratedList.swift
+++ b/Sources/HTMLKit/Framework/Rendering/EnumeratedList.swift
@@ -84,6 +84,12 @@ extension EnumeratedList {
self.values = values.map(\.rawValue)
self.separator = separator
}
+
+ internal init(values: [Values.Role], separator: String) {
+
+ self.values = values.map(\.rawValue)
+ self.separator = separator
+ }
}
extension EnumeratedList: Equatable {
diff --git a/Tests/HTMLKitTests/AttributesTests.swift b/Tests/HTMLKitTests/AttributesTests.swift
index 09389a03..3a68ccb9 100644
--- a/Tests/HTMLKitTests/AttributesTests.swift
+++ b/Tests/HTMLKitTests/AttributesTests.swift
@@ -153,8 +153,12 @@ final class AttributesTests: XCTestCase {
return self.mutate(nonce: .init(value, context: .tainted(.html)))
}
- func role(_ value: Values.Role) -> Tag {
- return self.mutate(role: .init(value.rawValue, context: .trusted))
+ func role(_ values: [Values.Role]) -> Tag {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
+ }
+
+ func role(_ values: Values.Role...) -> Tag {
+ return mutate(role: .init(EnumeratedList(values: values, separator: " "), context: .trusted))
}
func spellcheck(_ value: Bool = true) -> Tag {
@@ -1364,11 +1368,15 @@ final class AttributesTests: XCTestCase {
let view = TestView {
Tag {}.role(.alert)
+ Tag {}.role([.alertDialog, .alert])
+ Tag {}.role(.alertDialog, .alert)
}
XCTAssertEqual(try renderer.render(view: view),
"""
-
+ \
+ \
+
"""
)
}