Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
764 changes: 508 additions & 256 deletions Sources/HTMLKit/Abstraction/Attributes/AriaAttributes.swift

Large diffs are not rendered by default.

4,589 changes: 4,558 additions & 31 deletions Sources/HTMLKit/Abstraction/Elements/BodyElements.swift

Large diffs are not rendered by default.

132 changes: 132 additions & 0 deletions Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift
Original file line number Diff line number Diff line change
Expand Up @@ -336,10 +336,15 @@ extension TermName: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute
return mutate(ariaatomic: .init(value, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityBusy(_:) modifier instead.")
public func aria(busy value: Bool) -> TermName {
return mutate(ariabusy: .init(value, context: .trusted))
}

public func accessibilityBusy(_ value: Bool = true) -> TermName {
return mutate(ariabusy: .init(value, context: .trusted))
}

public func aria(controls value: String) -> TermName {
return mutate(ariacontrols: .init(value, context: .tainted(.html)))
}
Expand All @@ -356,50 +361,111 @@ extension TermName: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute
return mutate(ariadetails: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
public func aria(disabled value: Bool) -> TermName {
return mutate(ariadisabled: .init(value, context: .trusted))
}

public func accessibilityDisabled(_ value: Bool = true) -> TermName {
return mutate(ariadisabled: .init(value, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityInvalid(_:) modifier instead.")
public func aria(errorMessage value: String) -> TermName {
return mutate(ariaerrormessage: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityFlowTo(_:) modifier instead.")
public func aria(flowTo value: String) -> TermName {
return mutate(ariaflowto: .init(value, context: .tainted(.html)))
}

public func accessibilityFlowTo(_ ids: [String]) -> TermName {
return mutate(ariaflowto: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func accessibilityFlowTo(_ ids: String...) -> TermName {
return mutate(ariaflowto: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func aria(hasPopup value: Values.Accessibility.Popup) -> TermName {
return mutate(ariahaspopup: .init(value.rawValue, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityHidden(_:) modifier instead.")
public func aria(hidden value: Bool) -> TermName {
return mutate(ariahidden: .init(value, context: .trusted))
}

public func accessibilityHidden(_ value: Bool = true) -> TermName {
return mutate(ariahidden: .init(value, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityInvalid(_:) modifier instead.")
public func aria(invalid value: Values.Accessibility.Invalid) -> TermName {
return mutate(ariainvalid: .init(value.rawValue, context: .trusted))
}

public func accessibilityInvalid(_ value: Values.Accessibility.Invalid) -> TermName {
return mutate(ariainvalid: .init(value.rawValue, context: .trusted))
}

public func accessibilityInvalid(_ value: Bool = true, message id: String? = nil) -> TermName {

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 aria(keyShortcuts value: String) -> TermName {
return mutate(ariakeyshortcuts: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityLabel(_:) modifier instead.")
public func aria(label value: String) -> TermName {
return mutate(arialabel: .init(value, context: .tainted(.html)))
}

public func accessibilityLabel(_ value: String) -> TermName {
return mutate(arialabel: .init(value, context: .tainted(.html)))
}

public func accessibilityLabel(_ localizedKey: LocalizedStringKey, tableName: String? = nil) -> TermName {
return mutate(arialabel: .init(LocalizedString(key: localizedKey, table: tableName), context: .tainted(.html)))
}

public func accessibilityLabel(verbatim value: String) -> TermName {
return mutate(arialabel: .init(value, context: .tainted(.html)))
}

public func aria(labeledBy value: String) -> TermName {
return mutate(arialabeledby: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityLive(_:) modifier instead.")
public func aria(live value: Values.Accessibility.Live) -> TermName {
return mutate(arialive: .init(value.rawValue, context: .trusted))
}

public func accessibilityLive(_ value: Values.Accessibility.Live) -> TermName {
return mutate(arialive: .init(value.rawValue, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityOwns(_:) modifier instead.")
public func aria(owns value: String) -> TermName {
return mutate(ariaowns: .init(value, context: .tainted(.html)))
}

public func accessibilityOwns(_ ids: [String]) -> TermName {
return mutate(ariaowns: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func accessibilityOwns(_ ids: String...) -> TermName {
return mutate(ariaowns: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func aria(relevant value: Values.Accessibility.Relevant) -> TermName {
return mutate(ariarelevant: .init(value.rawValue, context: .trusted))
}
Expand Down Expand Up @@ -736,10 +802,15 @@ extension TermDefinition: GlobalAttributes, GlobalEventAttributes, GlobalAriaAtt
return mutate(ariaatomic: .init(value, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityBusy(_:) modifier instead.")
public func aria(busy value: Bool) -> TermDefinition {
return mutate(ariabusy: .init(value, context: .trusted))
}

public func accessibilityBusy(_ value: Bool = true) -> TermDefinition {
return mutate(ariabusy: .init(value, context: .trusted))
}

public func aria(controls value: String) -> TermDefinition {
return mutate(ariacontrols: .init(value, context: .tainted(.html)))
}
Expand All @@ -756,50 +827,111 @@ extension TermDefinition: GlobalAttributes, GlobalEventAttributes, GlobalAriaAtt
return mutate(ariadetails: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
public func aria(disabled value: Bool) -> TermDefinition {
return mutate(ariadisabled: .init(value, context: .trusted))
}

public func accessibilityDisabled(_ value: Bool = true) -> TermDefinition {
return mutate(ariadisabled: .init(value, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityInvalid(_:) modifier instead.")
public func aria(errorMessage value: String) -> TermDefinition {
return mutate(ariaerrormessage: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityFlowTo(_:) modifier instead.")
public func aria(flowTo value: String) -> TermDefinition {
return mutate(ariaflowto: .init(value, context: .tainted(.html)))
}

public func accessibilityFlowTo(_ ids: [String]) -> TermDefinition {
return mutate(ariaflowto: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func accessibilityFlowTo(_ ids: String...) -> TermDefinition {
return mutate(ariaflowto: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func aria(hasPopup value: Values.Accessibility.Popup) -> TermDefinition {
return mutate(ariahaspopup: .init(value.rawValue, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityHidden(_:) modifier instead.")
public func aria(hidden value: Bool) -> TermDefinition {
return mutate(ariahidden: .init(value, context: .trusted))
}

public func accessibilityHidden(_ value: Bool = true) -> TermDefinition {
return mutate(ariahidden: .init(value, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityInvalid(_:) modifier instead.")
public func aria(invalid value: Values.Accessibility.Invalid) -> TermDefinition {
return mutate(ariainvalid: .init(value.rawValue, context: .trusted))
}

public func accessibilityInvalid(_ value: Values.Accessibility.Invalid) -> TermDefinition {
return mutate(ariainvalid: .init(value.rawValue, context: .trusted))
}

public func accessibilityInvalid(_ value: Bool = true, message id: String? = nil) -> TermDefinition {

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 aria(keyShortcuts value: String) -> TermDefinition {
return mutate(ariakeyshortcuts: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityLabel(_:) modifier instead.")
public func aria(label value: String) -> TermDefinition {
return mutate(arialabel: .init(value, context: .tainted(.html)))
}

public func accessibilityLabel(_ value: String) -> TermDefinition {
return mutate(arialabel: .init(value, context: .tainted(.html)))
}

public func accessibilityLabel(_ localizedKey: LocalizedStringKey, tableName: String? = nil) -> TermDefinition {
return mutate(arialabel: .init(LocalizedString(key: localizedKey, table: tableName), context: .tainted(.html)))
}

public func accessibilityLabel(verbatim value: String) -> TermDefinition {
return mutate(arialabel: .init(value, context: .tainted(.html)))
}

public func aria(labeledBy value: String) -> TermDefinition {
return mutate(arialabeledby: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityLive(_:) modifier instead.")
public func aria(live value: Values.Accessibility.Live) -> TermDefinition {
return mutate(arialive: .init(value.rawValue, context: .trusted))
}

public func accessibilityLive(_ value: Values.Accessibility.Live) -> TermDefinition {
return mutate(arialive: .init(value.rawValue, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityOwns(_:) modifier instead.")
public func aria(owns value: String) -> TermDefinition {
return mutate(ariaowns: .init(value, context: .tainted(.html)))
}

public func accessibilityOwns(_ ids: [String]) -> TermDefinition {
return mutate(ariaowns: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func accessibilityOwns(_ ids: String...) -> TermDefinition {
return mutate(ariaowns: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func aria(relevant value: Values.Accessibility.Relevant) -> TermDefinition {
return mutate(ariarelevant: .init(value.rawValue, context: .trusted))
}
Expand Down
66 changes: 66 additions & 0 deletions Sources/HTMLKit/Abstraction/Elements/FigureElements.swift
Original file line number Diff line number Diff line change
Expand Up @@ -332,10 +332,15 @@ extension FigureCaption: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttr
return mutate(ariaatomic: .init(value, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityBusy(_:) modifier instead.")
public func aria(busy value: Bool) -> FigureCaption {
return mutate(ariabusy: .init(value, context: .trusted))
}

public func accessibilityBusy(_ value: Bool = true) -> FigureCaption {
return mutate(ariabusy: .init(value, context: .trusted))
}

public func aria(controls value: String) -> FigureCaption {
return mutate(ariacontrols: .init(value, context: .tainted(.html)))
}
Expand All @@ -352,50 +357,111 @@ extension FigureCaption: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttr
return mutate(ariadetails: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
public func aria(disabled value: Bool) -> FigureCaption {
return mutate(ariadisabled: .init(value, context: .trusted))
}

public func accessibilityDisabled(_ value: Bool = true) -> FigureCaption {
return mutate(ariadisabled: .init(value, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityInvalid(_:) modifier instead.")
public func aria(errorMessage value: String) -> FigureCaption {
return mutate(ariaerrormessage: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityFlowTo(_:) modifier instead.")
public func aria(flowTo value: String) -> FigureCaption {
return mutate(ariaflowto: .init(value, context: .tainted(.html)))
}

public func accessibilityFlowTo(_ ids: [String]) -> FigureCaption {
return mutate(ariaflowto: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func accessibilityFlowTo(_ ids: String...) -> FigureCaption {
return mutate(ariaflowto: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func aria(hasPopup value: Values.Accessibility.Popup) -> FigureCaption {
return mutate(ariahaspopup: .init(value.rawValue, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityHidden(_:) modifier instead.")
public func aria(hidden value: Bool) -> FigureCaption {
return mutate(ariahidden: .init(value, context: .trusted))
}

public func accessibilityHidden(_ value: Bool = true) -> FigureCaption {
return mutate(ariahidden: .init(value, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityInvalid(_:) modifier instead.")
public func aria(invalid value: Values.Accessibility.Invalid) -> FigureCaption {
return mutate(ariainvalid: .init(value.rawValue, context: .trusted))
}

public func accessibilityInvalid(_ value: Values.Accessibility.Invalid) -> FigureCaption {
return mutate(ariainvalid: .init(value.rawValue, context: .trusted))
}

public func accessibilityInvalid(_ value: Bool = true, message id: String? = nil) -> Figcaption {

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 aria(keyShortcuts value: String) -> FigureCaption {
return mutate(ariakeyshortcuts: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityLabel(_:) modifier instead.")
public func aria(label value: String) -> FigureCaption {
return mutate(arialabel: .init(value, context: .tainted(.html)))
}

public func accessibilityLabel(_ value: String) -> FigureCaption {
return mutate(arialabel: .init(value, context: .tainted(.html)))
}

public func accessibilityLabel(_ localizedKey: LocalizedStringKey, tableName: String? = nil) -> FigureCaption {
return mutate(arialabel: .init(LocalizedString(key: localizedKey, table: tableName), context: .tainted(.html)))
}

public func accessibilityLabel(verbatim value: String) -> FigureCaption {
return mutate(arialabel: .init(value, context: .tainted(.html)))
}

public func aria(labeledBy value: String) -> FigureCaption {
return mutate(arialabeledby: .init(value, context: .tainted(.html)))
}

@available(*, deprecated, message: "Use the accessibilityLive(_:) modifier instead.")
public func aria(live value: Values.Accessibility.Live) -> FigureCaption {
return mutate(arialive: .init(value.rawValue, context: .trusted))
}

public func accessibilityLive(_ value: Values.Accessibility.Live) -> FigureCaption {
return mutate(arialive: .init(value.rawValue, context: .trusted))
}

@available(*, deprecated, message: "Use the accessibilityOwns(_:) modifier instead.")
public func aria(owns value: String) -> FigureCaption {
return mutate(ariaowns: .init(value, context: .tainted(.html)))
}

public func accessibilityOwns(_ ids: [String]) -> FigureCaption {
return mutate(ariaowns: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func accessibilityOwns(_ ids: String...) -> FigureCaption {
return mutate(ariaowns: .init(EnumeratedList(values: ids, separator: " "), context: .tainted(.html)))
}

public func aria(relevant value: Values.Accessibility.Relevant) -> FigureCaption {
return mutate(ariarelevant: .init(value.rawValue, context: .trusted))
}
Expand Down
Loading