Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(AccessibilityIdentifiers): IOS-9694 - New struct for common Ids #334

Merged
merged 1 commit into from
Feb 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,6 @@ public class NavigationPresetView: UIStackView {
}
}

public var setAccessibilityIdentifier: String? {
get {
accessibilityIdentifier
}
set {
accessibilityIdentifier = newValue
}
}

override public var tintColor: UIColor! {
get {
super.tintColor
Expand Down Expand Up @@ -76,8 +67,13 @@ private extension NavigationPresetView {
spacing = 16

imageView.tintColor = .textSecondary
isAccessibilityElement = true
configureAccessibility()

addArrangedSubview(imageView)
}

func configureAccessibility() {
isAccessibilityElement = true
accessibilityIdentifier = ListAccessibilityIdentifiers.chevron.rawValue
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
//
// DefaultAccessibilityIdentifiers.swift
//
// Made with ❤️ by Novum
//
// Copyright © Telefonica. All rights reserved.
//

import Foundation

public struct DefaultAccessibilityIdentifier {
public struct Feature {
let description: String
public init(_ description: String) {
self.description = description
}
}

public struct Section {
let description: String
public init(_ description: String) {
self.description = description
}
}

public struct ElementType {
let description: String
public init(_ description: String) {
self.description = description
}
}

let feature: String
let section: String
let elementType: String

public init(
feature: DefaultAccessibilityIdentifier.Feature,
section: DefaultAccessibilityIdentifier.Section,
elementType: DefaultAccessibilityIdentifier.ElementType
) {
self.feature = feature.description
self.section = section.description
self.elementType = elementType.description
}

public var rawValue: String {
[feature, section, elementType]
.compactMap { $0 }
.joined(separator: "_")
}
}

public extension DefaultAccessibilityIdentifier.Section {
static let item = DefaultAccessibilityIdentifier.Section("item")
}

public extension DefaultAccessibilityIdentifier.ElementType {
static let chevron = DefaultAccessibilityIdentifier.ElementType("chevron")
static let icon = DefaultAccessibilityIdentifier.ElementType("icon")
static let title = DefaultAccessibilityIdentifier.ElementType("title")
static let subtitle = DefaultAccessibilityIdentifier.ElementType("subtitle")
static let errorLabel = DefaultAccessibilityIdentifier.ElementType("error_reference")
static let primaryButton = DefaultAccessibilityIdentifier.ElementType("primary_button")
static let secondaryButton = DefaultAccessibilityIdentifier.ElementType("secondary_button")
static let linkButton = DefaultAccessibilityIdentifier.ElementType("link_button")
static let slot = DefaultAccessibilityIdentifier.ElementType("slot")
static let description = DefaultAccessibilityIdentifier.ElementType("description")
static let tag = DefaultAccessibilityIdentifier.ElementType("tag")
static let action = DefaultAccessibilityIdentifier.ElementType("action")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
//
// FeedbackAccessibilityIdentifiers.swift
//
// Made with ❤️ by Novum
//
// Copyright © Telefonica. All rights reserved.
//

private extension DefaultAccessibilityIdentifier.Feature {
static let feedback = DefaultAccessibilityIdentifier.Feature("feedback")
}

public enum FeedbackAccessibilityIdentifiers {
public static var icon = DefaultAccessibilityIdentifier(feature: .feedback, section: .item, elementType: .icon)
public static var title = DefaultAccessibilityIdentifier(feature: .feedback, section: .item, elementType: .title)
public static var description = DefaultAccessibilityIdentifier(feature: .feedback, section: .item, elementType: .description)
public static var primaryButton = DefaultAccessibilityIdentifier(feature: .feedback, section: .item, elementType: .primaryButton)
public static var secondaryButton = DefaultAccessibilityIdentifier(feature: .feedback, section: .item, elementType: .secondaryButton)
public static var linkButton = DefaultAccessibilityIdentifier(feature: .feedback, section: .item, elementType: .linkButton)
public static var slot = DefaultAccessibilityIdentifier(feature: .feedback, section: .item, elementType: .slot)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//
// ListAccessibilityIdentifiers.swift
//
// Made with ❤️ by Novum
//
// Copyright © Telefonica. All rights reserved.
//

import Foundation

private extension DefaultAccessibilityIdentifier.Feature {
static let list = DefaultAccessibilityIdentifier.Feature("list")
}

public enum ListAccessibilityIdentifiers {
public static var icon = DefaultAccessibilityIdentifier(feature: .list, section: .item, elementType: .icon)
public static var tag = DefaultAccessibilityIdentifier(feature: .list, section: .item, elementType: .tag)
public static var title = DefaultAccessibilityIdentifier(feature: .list, section: .item, elementType: .title)
public static var subtitle = DefaultAccessibilityIdentifier(feature: .list, section: .item, elementType: .subtitle)
public static var description = DefaultAccessibilityIdentifier(feature: .list, section: .item, elementType: .description)
public static var slot = DefaultAccessibilityIdentifier(feature: .list, section: .item, elementType: .slot)
public static var action = DefaultAccessibilityIdentifier(feature: .list, section: .item, elementType: .action)
public static var chevron = DefaultAccessibilityIdentifier(feature: .list, section: .item, elementType: .chevron)
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public struct CellNavigationPreset: View {
.renderingMode(.template)
.foregroundColor(.neutralMedium)
.frame(width: Constants.smallImageSize, height: Constants.smallImageSize, alignment: .center)
.accessibilityIdentifier(ListAccessibilityIdentifiers.chevron.rawValue)
}
}
}
Loading