Skip to content

Commit f21396a

Browse files
committed
Revise the detail attribute
1 parent 30dba4a commit f21396a

12 files changed

Lines changed: 474 additions & 14 deletions

Sources/HTMLKit/Abstraction/Attributes/AriaAttributes.swift

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@_documentation(visibility: internal)
2-
public typealias GlobalAriaAttributes = AtomicAccessibilityAttribute & BusyAccessibilityAttribute & ControlsAccessibilityAttribute & CurrentAccessibilityAttribute & AriaDescribedAttribute & AriaDetailsAttribute & DisabledAccessibilityAttribute & FlowAccessibilityAttribute & AriaPopupAttribute & HiddenAccessibilityAttribute & InvalidAccessibilityAttribute & AriaShortcutsAttribute & LabelAccessibilityAttribute & LabelsAccessibilityAttribute & LiveAccessibilityAttribute & OwnsAccessibilityAttribute & RelevantAccessibilityAttribute & AriaRoleDescriptionAttribute
2+
public typealias GlobalAriaAttributes = AtomicAccessibilityAttribute & BusyAccessibilityAttribute & ControlsAccessibilityAttribute & CurrentAccessibilityAttribute & AriaDescribedAttribute & DetailAccessibilityAttribute & DisabledAccessibilityAttribute & FlowAccessibilityAttribute & AriaPopupAttribute & HiddenAccessibilityAttribute & InvalidAccessibilityAttribute & AriaShortcutsAttribute & LabelAccessibilityAttribute & LabelsAccessibilityAttribute & LiveAccessibilityAttribute & OwnsAccessibilityAttribute & RelevantAccessibilityAttribute & AriaRoleDescriptionAttribute
33

44
/// A type that provides the `accessibilityFocused` modifier.
55
@_documentation(visibility: internal)
@@ -374,26 +374,32 @@ extension AriaDescribedAttribute where Self: EmptyNode {
374374
}
375375
}
376376

377-
/// The protocol provides the element with accessibility handler.
377+
/// A type that provides the `accessibilityDetail` modifier.
378378
@_documentation(visibility: internal)
379-
public protocol AriaDetailsAttribute: Attribute {
379+
public protocol DetailAccessibilityAttribute: Attribute {
380380

381-
/// The function represents the html-attribute 'aria-details'.
382-
///
383-
/// ```html
384-
/// <tag aria-details="" />
381+
/// Refer to an element that provides an extended description.
382+
///
383+
/// ```swift
384+
/// Division {
385+
/// }
386+
/// .accessibilityDetail("id")
385387
/// ```
386-
func aria(details value: String) -> Self
388+
///
389+
/// - Parameter id: The identifier of the element to refer to.
390+
///
391+
/// - Returns: The element
392+
func accessibilityDetail(_ id: String) -> Self
387393
}
388394

389-
extension AriaDetailsAttribute where Self: ContentNode {
395+
extension DetailAccessibilityAttribute where Self: ContentNode {
390396

391397
internal func mutate(ariadetails value: AttributeData) -> Self {
392398
return self.mutate(key: "aria-details", value: value)
393399
}
394400
}
395401

396-
extension AriaDetailsAttribute where Self: EmptyNode {
402+
extension DetailAccessibilityAttribute where Self: EmptyNode {
397403

398404
internal func mutate(ariadetails value: AttributeData) -> Self {
399405
return self.mutate(key: "aria-details", value: value)

Sources/HTMLKit/Abstraction/Elements/BodyElements.swift

Lines changed: 335 additions & 0 deletions
Large diffs are not rendered by default.

Sources/HTMLKit/Abstraction/Elements/DefinitionElements.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,10 +380,15 @@ extension TermName: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute
380380
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
381381
}
382382

383+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
383384
public func aria(details value: String) -> TermName {
384385
return mutate(ariadetails: .init(value, context: .tainted(.html)))
385386
}
386387

388+
public func accessibilityDetail(_ id: String) -> TermName {
389+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
390+
}
391+
387392
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
388393
public func aria(disabled value: Bool) -> TermName {
389394
return mutate(ariadisabled: .init(value, context: .trusted))
@@ -888,10 +893,15 @@ extension TermDefinition: GlobalAttributes, GlobalEventAttributes, GlobalAriaAtt
888893
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
889894
}
890895

896+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
891897
public func aria(details value: String) -> TermDefinition {
892898
return mutate(ariadetails: .init(value, context: .tainted(.html)))
893899
}
894900

901+
public func accessibilityDetail(_ id: String) -> TermDefinition {
902+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
903+
}
904+
895905
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
896906
public func aria(disabled value: Bool) -> TermDefinition {
897907
return mutate(ariadisabled: .init(value, context: .trusted))

Sources/HTMLKit/Abstraction/Elements/FigureElements.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,10 +376,15 @@ extension FigureCaption: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttr
376376
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
377377
}
378378

379+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
379380
public func aria(details value: String) -> FigureCaption {
380381
return mutate(ariadetails: .init(value, context: .tainted(.html)))
381382
}
382383

384+
public func accessibilityDetail(_ id: String) -> FigureCaption {
385+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
386+
}
387+
383388
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
384389
public func aria(disabled value: Bool) -> FigureCaption {
385390
return mutate(ariadisabled: .init(value, context: .trusted))

Sources/HTMLKit/Abstraction/Elements/FormElements.swift

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,10 +887,15 @@ extension Label: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes,
887887
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
888888
}
889889

890+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
890891
public func aria(details value: String) -> Label {
891892
return mutate(ariadetails: .init(value, context: .tainted(.html)))
892893
}
893894

895+
public func accessibilityDetail(_ id: String) -> Label {
896+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
897+
}
898+
894899
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
895900
public func aria(disabled value: Bool) -> Label {
896901
return mutate(ariadisabled: .init(value, context: .trusted))
@@ -1869,10 +1874,15 @@ extension TextArea: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute
18691874
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
18701875
}
18711876

1877+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
18721878
public func aria(details value: String) -> TextArea {
18731879
return mutate(ariadetails: .init(value, context: .tainted(.html)))
18741880
}
18751881

1882+
public func accessibilityDetail(_ id: String) -> TextArea {
1883+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
1884+
}
1885+
18761886
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
18771887
public func aria(disabled value: Bool) -> TextArea {
18781888
return mutate(ariadisabled: .init(value, context: .trusted))
@@ -2429,10 +2439,15 @@ extension Button: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes,
24292439
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
24302440
}
24312441

2442+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
24322443
public func aria(details value: String) -> Button {
24332444
return mutate(ariadetails: .init(value, context: .tainted(.html)))
24342445
}
24352446

2447+
public func accessibilityDetail(_ id: String) -> Button {
2448+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
2449+
}
2450+
24362451
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
24372452
public func aria(disabled value: Bool) -> Button {
24382453
return mutate(ariadisabled: .init(value, context: .trusted))
@@ -2980,10 +2995,15 @@ extension Fieldset: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute
29802995
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
29812996
}
29822997

2998+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
29832999
public func aria(details value: String) -> Fieldset {
29843000
return mutate(ariadetails: .init(value, context: .tainted(.html)))
29853001
}
29863002

3003+
public func accessibilityDetail(_ id: String) -> Fieldset {
3004+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
3005+
}
3006+
29873007
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
29883008
public func aria(disabled value: Bool) -> Fieldset {
29893009
return mutate(ariadisabled: .init(value, context: .trusted))

Sources/HTMLKit/Abstraction/Elements/HtmlElements.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,10 +694,15 @@ extension Body: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, W
694694
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
695695
}
696696

697+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
697698
public func aria(details value: String) -> Body {
698699
return mutate(ariadetails: .init(value, context: .tainted(.html)))
699700
}
700701

702+
public func accessibilityDetail(_ id: String) -> Body {
703+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
704+
}
705+
701706
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
702707
public func aria(disabled value: Bool) -> Body {
703708
return mutate(ariadisabled: .init(value, context: .trusted))

Sources/HTMLKit/Abstraction/Elements/InputElements.swift

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,10 +404,15 @@ extension OptionGroup: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttrib
404404
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
405405
}
406406

407+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
407408
public func aria(details value: String) -> OptionGroup {
408409
return mutate(ariadetails: .init(value, context: .tainted(.html)))
409410
}
410411

412+
public func accessibilityDetail(_ id: String) -> OptionGroup {
413+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
414+
}
415+
411416
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
412417
public func aria(disabled value: Bool) -> OptionGroup {
413418
return mutate(ariadisabled: .init(value, context: .trusted))
@@ -954,10 +959,15 @@ extension Option: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes,
954959
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
955960
}
956961

962+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
957963
public func aria(details value: String) -> Option {
958964
return mutate(ariadetails: .init(value, context: .tainted(.html)))
959965
}
960966

967+
public func accessibilityDetail(_ id: String) -> Option {
968+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
969+
}
970+
961971
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
962972
public func aria(disabled value: Bool) -> Option {
963973
return mutate(ariadisabled: .init(value, context: .trusted))
@@ -1470,10 +1480,15 @@ extension Legend: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes
14701480
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
14711481
}
14721482

1483+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
14731484
public func aria(details value: String) -> Legend {
14741485
return mutate(ariadetails: .init(value, context: .tainted(.html)))
14751486
}
14761487

1488+
public func accessibilityDetail(_ id: String) -> Legend {
1489+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
1490+
}
1491+
14771492
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
14781493
public func aria(disabled value: Bool) -> Legend {
14791494
return mutate(ariadisabled: .init(value, context: .trusted))
@@ -1978,10 +1993,15 @@ extension Summary: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes
19781993
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
19791994
}
19801995

1996+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
19811997
public func aria(details value: String) -> Summary {
19821998
return mutate(ariadetails: .init(value, context: .tainted(.html)))
19831999
}
19842000

2001+
public func accessibilityDetail(_ id: String) -> Summary {
2002+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
2003+
}
2004+
19852005
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
19862006
public func aria(disabled value: Bool) -> Summary {
19872007
return mutate(ariadisabled: .init(value, context: .trusted))

Sources/HTMLKit/Abstraction/Elements/ListElements.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,10 +389,15 @@ extension ListItem: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute
389389
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
390390
}
391391

392+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
392393
public func aria(details value: String) -> ListItem {
393394
return mutate(ariadetails: .init(value, context: .tainted(.html)))
394395
}
395396

397+
public func accessibilityDetail(_ id: String) -> ListItem {
398+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
399+
}
400+
396401
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
397402
public func aria(disabled value: Bool) -> ListItem {
398403
return mutate(ariadisabled: .init(value, context: .trusted))

Sources/HTMLKit/Abstraction/Elements/MapElements.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,10 +419,15 @@ extension Area: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttributes, A
419419
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
420420
}
421421

422+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
422423
public func aria(details value: String) -> Area {
423424
return mutate(ariadetails: .init(value, context: .tainted(.html)))
424425
}
425426

427+
public func accessibilityDetail(_ id: String) -> Area {
428+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
429+
}
430+
426431
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
427432
public func aria(disabled value: Bool) -> Area {
428433
return mutate(ariadisabled: .init(value, context: .trusted))

Sources/HTMLKit/Abstraction/Elements/RubyElements.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,10 +378,15 @@ extension RubyText: GlobalAttributes, GlobalEventAttributes, GlobalAriaAttribute
378378
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
379379
}
380380

381+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
381382
public func aria(details value: String) -> RubyText {
382383
return mutate(ariadetails: .init(value, context: .tainted(.html)))
383384
}
384385

386+
public func accessibilityDetail(_ id: String) -> RubyText {
387+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
388+
}
389+
385390
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
386391
public func aria(disabled value: Bool) -> RubyText {
387392
return mutate(ariadisabled: .init(value, context: .trusted))
@@ -891,10 +896,15 @@ extension RubyPronunciation: GlobalAttributes, GlobalEventAttributes, GlobalAria
891896
return mutate(ariadescribedby: .init(value, context: .tainted(.html)))
892897
}
893898

899+
@available(*, deprecated, message: "Use the accessibilityDetail(_:) modifier instead.")
894900
public func aria(details value: String) -> RubyPronunciation {
895901
return mutate(ariadetails: .init(value, context: .tainted(.html)))
896902
}
897903

904+
public func accessibilityDetail(_ id: String) -> RubyPronunciation {
905+
return mutate(ariadetails: .init(id, context: .tainted(.html)))
906+
}
907+
898908
@available(*, deprecated, message: "Use the accessibilityDisabled(_:) modifier instead.")
899909
public func aria(disabled value: Bool) -> RubyPronunciation {
900910
return mutate(ariadisabled: .init(value, context: .trusted))

0 commit comments

Comments
 (0)