-
Notifications
You must be signed in to change notification settings - Fork 67
[SDK-4805] Adds accessibility id for InApps #429
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
base: task/add_accessibility_id
Are you sure you want to change the base?
[SDK-4805] Adds accessibility id for InApps #429
Conversation
WalkthroughThe changes update multiple XIB resource files for various in-app message view controllers to newer Interface Builder tools and plugin versions. Device attributes such as layout and appearance are now explicitly set. Accessibility identifiers and element flags are added to key UI elements (image views, labels, buttons, close buttons) to enhance accessibility support. Some button types are updated from "roundedRect" to "system." No exported or public code entities are altered. Changes
Sequence Diagram(s)Not applicable—these changes involve only resource file metadata, accessibility attributes, and minor layout adjustments, without introducing or modifying control flow or feature logic. Note ⚡️ AI Code Reviews for VS Code, Cursor, WindsurfCodeRabbit now has a plugin for VS Code, Cursor and Windsurf. This brings AI code reviews directly in the code editor. Each commit is reviewed immediately, finding bugs before the PR is raised. Seamless context handoff to your AI code agent ensures that you can easily incorporate review feedback. Note ⚡️ Faster reviews with cachingCodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 16th. To opt out, configure Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (10)
CleverTapSDK/InApps/resources/CTInterstitialViewController~iphoneport.xib (1)
71-73: Update button style and add accessibility to first button
SwitchingbuttonTypetosystemmodernizes the button appearance, andidentifier="inapp_btn1"ensures it can be reliably accessed by UI tests.Consider extracting a common IB component for in-app buttons to reduce duplication.
CleverTapSDK/InApps/resources/CTInterstitialViewController~ipad.xib (1)
139-140: Close button identifier missing element flag and traits
The close button hasidentifier="inapp_close_btn"but lacks<accessibilityTraits>and<bool key="isElement" value="YES"/>.Consider adding these nested tags to maintain consistency with other XIBs and ensure the button is treated as an accessibility element.
CleverTapSDK/InApps/resources/CTHalfInterstitialViewController~iphoneport.xib (4)
37-38: Optional: specify image accessibilityTrait
Consider adding:<accessibilityTraits key="traits" image="YES"/>inside the
accessibilityConfigurationto explicitly mark this as an image element.
51-52: Consistency: add isElement flag for title label
You setidentifier="inapp_title", but it’s missing<bool key="isElement" value="YES"/>. Adding it ensures the label is recognized as an accessibility element.
58-59: Consistency: add isElement flag for message label
Theidentifier="inapp_message"is in place—please also include<bool key="isElement" value="YES"/>for explicit accessibility.
68-69: Consistency: add isElement flag for buttons
Both buttons have identifiers (inapp_btn1/inapp_btn2) but no explicit<bool key="isElement" value="YES"/>. Adding it maintains parity with the close button.Also applies to: 80-81
CleverTapSDK/InApps/resources/CTInterstitialViewController~ipadland.xib (4)
38-38: Consistency: add isElement flag for buttons
To mirror the close button configuration, add<bool key="isElement" value="YES"/>inside each button’saccessibilityConfiguration.Also applies to: 50-50
79-79: Consistency: add isElement flag for title label
Theidentifier="inapp_title"is set—please follow up with<bool key="isElement" value="YES"/>for explicit accessibility.
86-86: Consistency: add isElement flag for message label
Afteridentifier="inapp_message", include<bool key="isElement" value="YES"/>to ensure the message label is treated as an accessibility element.
99-101: Optional: specify image accessibilityTrait
For completeness, you may insert:<accessibilityTraits key="traits" image="YES"/>within the
accessibilityConfiguration.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge Base: Disabled due to data retention organization setting
📒 Files selected for processing (32)
CleverTapSDK/InApps/resources/CTCoverImageViewController~ipad.xib(3 hunks)CleverTapSDK/InApps/resources/CTCoverImageViewController~ipadland.xib(3 hunks)CleverTapSDK/InApps/resources/CTCoverImageViewController~iphoneland.xib(3 hunks)CleverTapSDK/InApps/resources/CTCoverImageViewController~iphoneport.xib(3 hunks)CleverTapSDK/InApps/resources/CTCoverViewController~ipad.xib(5 hunks)CleverTapSDK/InApps/resources/CTCoverViewController~ipadland.xib(5 hunks)CleverTapSDK/InApps/resources/CTCoverViewController~iphoneland.xib(5 hunks)CleverTapSDK/InApps/resources/CTCoverViewController~iphoneport.xib(5 hunks)CleverTapSDK/InApps/resources/CTFooterViewController~ipad.xib(5 hunks)CleverTapSDK/InApps/resources/CTFooterViewController~ipadland.xib(5 hunks)CleverTapSDK/InApps/resources/CTFooterViewController~iphoneland.xib(5 hunks)CleverTapSDK/InApps/resources/CTFooterViewController~iphoneport.xib(5 hunks)CleverTapSDK/InApps/resources/CTHalfInterstitialImageViewController~ipad.xib(4 hunks)CleverTapSDK/InApps/resources/CTHalfInterstitialImageViewController~ipadland.xib(3 hunks)CleverTapSDK/InApps/resources/CTHalfInterstitialImageViewController~iphoneland.xib(3 hunks)CleverTapSDK/InApps/resources/CTHalfInterstitialImageViewController~iphoneport.xib(3 hunks)CleverTapSDK/InApps/resources/CTHalfInterstitialViewController~ipad.xib(5 hunks)CleverTapSDK/InApps/resources/CTHalfInterstitialViewController~ipadland.xib(5 hunks)CleverTapSDK/InApps/resources/CTHalfInterstitialViewController~iphoneland.xib(5 hunks)CleverTapSDK/InApps/resources/CTHalfInterstitialViewController~iphoneport.xib(4 hunks)CleverTapSDK/InApps/resources/CTHeaderViewController~ipad.xib(5 hunks)CleverTapSDK/InApps/resources/CTHeaderViewController~ipadland.xib(5 hunks)CleverTapSDK/InApps/resources/CTHeaderViewController~iphoneland.xib(5 hunks)CleverTapSDK/InApps/resources/CTHeaderViewController~iphoneport.xib(5 hunks)CleverTapSDK/InApps/resources/CTInterstitialImageViewController~ipad.xib(3 hunks)CleverTapSDK/InApps/resources/CTInterstitialImageViewController~ipadland.xib(4 hunks)CleverTapSDK/InApps/resources/CTInterstitialImageViewController~iphoneland.xib(4 hunks)CleverTapSDK/InApps/resources/CTInterstitialImageViewController~iphoneport.xib(4 hunks)CleverTapSDK/InApps/resources/CTInterstitialViewController~ipad.xib(7 hunks)CleverTapSDK/InApps/resources/CTInterstitialViewController~ipadland.xib(6 hunks)CleverTapSDK/InApps/resources/CTInterstitialViewController~iphoneland.xib(6 hunks)CleverTapSDK/InApps/resources/CTInterstitialViewController~iphoneport.xib(6 hunks)
🔇 Additional comments (195)
CleverTapSDK/InApps/resources/CTHeaderViewController~iphoneport.xib (6)
2-2: Confirm Interface Builder Version Updates
The XIB header was updated (toolsVersion="23504") and the CocoaTouch plugin bumped to23506. Verify compatibility with your minimum supported Xcode version and CI/macOS build images to avoid Interface Builder warnings or failures.Also applies to: 6-6
37-39: Accessibility: Add identifier for header icon
The imageView now includesidentifier="inapp_icon"and is marked as an accessibility element. This is exactly what's needed for UI tests and VoiceOver support.
59-59: Accessibility: Add identifier for title label
The title label now hasidentifier="inapp_title", enabling reliable targeting in automation and improved screen-reader clarity.
66-66: Accessibility: Add identifier for message label
The message label now declaresidentifier="inapp_message", which is great for consistent automated validation and assistive tech.
89-89: Accessibility: Add identifier for first button
The first button is now identified byinapp_btn1. This aligns with QA requirements for element lookup.
109-109: Accessibility: Add identifier for second button
The second button has been assignedidentifier="inapp_btn2", maintaining consistent naming across all InApp components.CleverTapSDK/InApps/resources/CTHalfInterstitialImageViewController~ipadland.xib (3)
2-3: Confirm IB Tools & Device Layout
XIB header and plugin version were updated, and the<device>now specifieslayout="fullscreen"withappearance="light". Ensure your Xcode toolchain supports these IB settings and that the fullscreen layout renders correctly on all target iPad devices.Also applies to: 6-6
28-30: Accessibility: Identify background image
Addedidentifier="inapp_bg_img"and marked the background image view as an accessibility element. This greatly aids UI automation and VoiceOver navigation.
45-48: Accessibility: Add identifier to close button
Close button now hasidentifier="inapp_close_btn", properaccessibilityTraits="button", andisElement="YES". Perfect for both assistive tech and automated tests.CleverTapSDK/InApps/resources/CTFooterViewController~iphoneland.xib (6)
2-2: Verify IB Tools & Plugin Version
ThetoolsVersionand plugin version were bumped. Confirm that your Xcode environment and CI workflows can handle these Interface Builder settings without warnings.Also applies to: 6-6
37-39: Accessibility: Icon identifier
The footer’s imageView now includesidentifier="inapp_icon"and is flagged as an element—this is exactly what QA automation needs.
59-59: Accessibility: Title label
Addedidentifier="inapp_title". This improves accessibility labeling and test script reliability.
66-66: Accessibility: Message label
Addedidentifier="inapp_message". Good for consistent element discovery and VoiceOver.
89-89: Accessibility: First button
First button now hasidentifier="inapp_btn1". This matches other InApp components and aids in automation.
109-109: Accessibility: Second button
Second button declared withidentifier="inapp_btn2", ensuring uniform naming and testability.CleverTapSDK/InApps/resources/CTFooterViewController~iphoneport.xib (6)
2-2: Confirm IB Header & Plugin Compatibility
ToolsVersion and plugin have been updated. Verify that these values are supported by the project's Xcode targets and CI images.Also applies to: 6-6
37-39: Accessibility: Icon configuration
The imageView now hasidentifier="inapp_icon"and is marked as an accessibility element—necessary for reliable UI testing.
59-59: Accessibility: Title label identifier
Title label now carriesidentifier="inapp_title", streamlining accessibility audits and automation scripts.
66-66: Accessibility: Body label identifier
Body label includesidentifier="inapp_message", ensuring consistent element targeting.
89-89: Accessibility: Button 1 identifier
First button has been tagged withidentifier="inapp_btn1", matching other variants.
109-109: Accessibility: Button 2 identifier
Second button now definesidentifier="inapp_btn2", maintaining naming consistency across device layouts.CleverTapSDK/InApps/resources/CTCoverImageViewController~iphoneland.xib (3)
2-3: Verify Interface Builder and Device Settings
The header, plugin version, and device attributes (orientation="landscape",appearance="light") were updated. Ensure compatibility with your Xcode version and confirm the visual layout on target devices.Also applies to: 6-6
31-33: Accessibility: Background image identifier
Addedidentifier="inapp_bg_img"and setisElement="YES"on the cover image view—this is crucial for screen readers and automation.
47-50: Accessibility: Close button identifier
Close button now hasidentifier="inapp_close_btn",accessibilityTraits="button", andisElement="YES". Perfect for both VoiceOver and automated testing.CleverTapSDK/InApps/resources/CTFooterViewController~ipad.xib (6)
2-6: Validate Interface Builder version update.
ThetoolsVersion="23504"and plugincom.apple.InterfaceBuilder.IBCocoaTouchPluginversion23506reflect a newer Xcode format. Please confirm the team’s minimum Xcode version and CI environment support these settings to avoid integration issues.
37-39: Add accessibility identifier to icon image view.
Assigningidentifier="inapp_icon"andisElement="YES"ensures the icon is discoverable by UI tests and assistive technologies.
59-59: Add accessibility identifier to title label.
Settingidentifier="inapp_title"provides a consistent handle for accessibility frameworks and test scripts.
66-66: Add accessibility identifier to body label.
Theinapp_messageidentifier enables reliable identification of the message text for automation and screen readers.
89-89: Add accessibility identifier to first button.
Identifierinapp_btn1improves test automation and accessibility support for the primary action.
109-109: Add accessibility identifier to second button.
Identifierinapp_btn2ensures consistency in locating the secondary action element across InApp screens.CleverTapSDK/InApps/resources/CTCoverViewController~ipad.xib (8)
2-6: Validate Interface Builder version update.
The updatedtoolsVersion="23504"and pluginversion="23506"require at least Xcode 11+. Verify that all developers and CI machines use a compatible Xcode version.
37-39: Add accessibility identifier to background image.
Assigningidentifier="inapp_bg_img"withisElement="YES"makes the cover’s background image accessible and testable.
64-64: Add accessibility identifier to title label.
Theinapp_titleidentifier standardizes title label lookup in automation and assists screen readers.
71-71: Add accessibility identifier to message label.
Identifierinapp_messageensures consistent access to the message content.
79-79: Update button type to system.
ChangingbuttonType="system"modernizes the UI control. Verify visually that this does not alter the intended style.
81-81: Add accessibility identifier to first main button.
Identifierinapp_btn1andisElement="YES"facilitate automated taps and a11y navigation.
91-91: Add accessibility identifier to second main button.
inapp_btn2is consistently named with other InApp variants, aiding maintainability.
157-157: Add accessibility identifier to close button.
Settingidentifier="inapp_close_btn"marks the dismiss control for UI tests and assistive tech.CleverTapSDK/InApps/resources/CTHeaderViewController~iphoneland.xib (6)
2-6: Validate Interface Builder version update.
The XIB’stoolsVersion="23504"and pluginversion="23506"should match the project’s minimum Xcode. Confirm compatibility in CI and developer environments.
37-39: Add accessibility identifier to header icon.
identifier="inapp_icon"andisElement="YES"ensure the header icon is recognized by accessibility tools and test scripts.
59-59: Add accessibility identifier to title label.
Usinginapp_titlemaintains consistency with other InApp headers for automated UI checks.
66-66: Add accessibility identifier to message label.
Theinapp_messageidentifier improves both screen reader support and test automation stability.
89-89: Add accessibility identifier to first button.
Identifierinapp_btn1andisElement="YES"allow reliable element interaction in automation.
109-109: Add accessibility identifier to second button.
inapp_btn2completes the button accessibility scheme across InApp headers.CleverTapSDK/InApps/resources/CTCoverImageViewController~iphoneport.xib (3)
2-6: Validate Interface Builder version update.
ConfirmtoolsVersion="23504"and pluginversion="23506"are supported by your project’s Xcode version to prevent resource loading issues.
31-33: Add accessibility identifier to cover image.
identifier="inapp_bg_img"andisElement="YES"make the cover image accessible for both assistive tech and UI tests.
47-50: Add accessibility configuration to close button.
Markingidentifier="inapp_close_btn"withisElement="YES"and proper traits ensures dismissal control is visible to screen readers and UI automation.CleverTapSDK/InApps/resources/CTInterstitialImageViewController~ipad.xib (3)
2-6: Validate Interface Builder version update.
EnsuretoolsVersion="23504"and pluginversion="23506"are compatible with the project’s Xcode toolchain in CI and developer environments.
31-33: Add accessibility identifier to interstitial background image.
identifier="inapp_bg_img"withisElement="YES"allows automated tests and screen readers to locate the interstitial graphic.
57-60: Add accessibility configuration to close button.
identifier="inapp_close_btn"plusisElement="YES"and button traits facilitate reliable discovery and interaction in UI tests and assistive tools.CleverTapSDK/InApps/resources/CTInterstitialImageViewController~iphoneport.xib (5)
2-3: Bump Interface Builder document version and set explicit appearance
The update to toolsVersion and addition ofappearance="light"ensure consistency with the rest of the InApps XIBs and explicit light‐mode rendering.
6-6: Upgrade Interface Builder plugin version
Aligns the plugIn version with the new Xcode runtime and ensures compatibility with the latest IB features.
31-33: Add accessibility identifier and element flag to background image
identifier="inapp_bg_img"andisElement="YES"enable automated UI tests to reliably target the background image view.
58-60: Add accessibility identifier and element flag to close button
identifier="inapp_close_btn"andisElement="YES"make the dismiss button discoverable for accessibility and automation.
79-79: Include canvasLocation metadata
Specifies the view’s position in Interface Builder for easier editing; no impact on runtime.CleverTapSDK/InApps/resources/CTFooterViewController~ipadland.xib (8)
2-2: Update XIB document version
Bumps the document to the newer Interface Builder format in line with other InApps resources.
6-6: Bump Interface Builder plugin version
Ensures the file uses the latest CocoaTouch IB plugin, matching the rest of the SDK.
37-39: Add accessibility identifier to icon image view
identifier="inapp_icon"andisElement="YES"improve automation targeting for the footer icon.
59-59: Add accessibility identifier to title label
identifier="inapp_title"makes the title label available for UI tests and screen readers.
66-66: Add accessibility identifier to body label
identifier="inapp_message"ensures the message text can be validated in automated tests.
89-89: Add accessibility identifier to first button
identifier="inapp_btn1"enables reliable selection of the primary action button.
109-109: Add accessibility identifier to second button
identifier="inapp_btn2"ensures the secondary action button is accessible to automation and a11y.
166-166: Include canvasLocation metadata
Provides a fixed canvas position in IB for faster visual editing; no effect at runtime.CleverTapSDK/InApps/resources/CTCoverImageViewController~ipad.xib (5)
2-2: Bump XIB document version
Updates to the latest Interface Builder format, maintaining consistency across InApps resources.
6-6: Upgrade Interface Builder plugin version
Keeps the CocoaTouch plugin in sync with Xcode’s IB runtime version.
31-33: Add accessibility identifier to cover background image
identifier="inapp_bg_img"withisElement="YES"allows automation to detect and interact with the image view.
56-59: Add accessibility identifier to dismiss button
identifier="inapp_close_btn"andisElement="YES"ensure the close action is exposed for UI tests and assistive tech.
81-81: Include canvasLocation metadata
Defines the view’s IB canvas coordinates for developer convenience without affecting runtime behavior.CleverTapSDK/InApps/resources/CTCoverImageViewController~ipadland.xib (5)
2-2: Update XIB to latest document version
Brings the file in line with the new IB format used by all InApps variants.
6-6: Upgrade IB plugin version
Ensures compatibility with the updated Interface Builder plugin for CocoaTouch.
31-33: Add accessibility identifier to cover background image
identifier="inapp_bg_img"+isElement="YES"supports consistent UI automation across all cover variants.
47-49: Add accessibility identifier to dismiss button
identifier="inapp_close_btn"with element flag ensures the close control is automation-accessible.
79-79: Include canvasLocation metadata
Pinpoints the view’s position in IB for maintainers; no runtime impact.CleverTapSDK/InApps/resources/CTHalfInterstitialViewController~iphoneland.xib (11)
2-3: Bump document and set explicit appearance
UpdatestoolsVersionand addsappearance="light"to align with other landscape InApps files.
6-6: Upgrade Interface Builder plugin version
Keeps the IB plugin version in sync with the rest of the InApps resource files.
37-39: Add accessibility identifier to interstitial background image
identifier="inapp_bg_img"andisElement="YES"make the background element testable and screen‐reader friendly.
52-52: Add accessibility identifier to title label
identifier="inapp_title"supports automated and assistive tech validation of the header text.
59-59: Add accessibility identifier to message label
identifier="inapp_message"ensures the body text is accessible for testing and a11y.
67-67: Update first button to system style
ChangingbuttonTypetosystemmodernizes the button appearance and aligns with platform conventions.
69-69: Add accessibility identifier to first button
identifier="inapp_btn1"exposes the primary CTA to automation frameworks.
79-79: Update second button to system style
Aligns the secondary action button with iOS design standards by using thesystemtype.
81-81: Add accessibility identifier to second button
identifier="inapp_btn2"ensures consistent targeting in tests and screen readers.
130-132: Add accessibility identifier and element flag to close button
identifier="inapp_close_btn"withisElement="YES"makes the dismiss control discoverable for UI automation and accessibility.
153-153: Include canvasLocation metadata
Specifies the X/Y coordinates in IB, facilitating layout adjustments by developers.CleverTapSDK/InApps/resources/CTHalfInterstitialViewController~ipad.xib (8)
2-3: Upgrade Interface Builder document version and tooling
ThetoolsVersion="23504"along with explicitlayout="fullscreen"andappearance="light"bring this XIB up to date. Ensure your CI and local Xcode installations support these settings to avoid unexpected merge conflicts or rendering issues.
6-6: Update Interface Builder plugin version
Bumping theIBCocoaTouchPluginto version23506aligns with the document version. Confirm that this plugin version is available in your Xcode environment to prevent recreation of the XIB.
37-39: Add accessibility identifier to background image
Marking theimageViewas an accessibility element withidentifier="inapp_bg_img"is perfect for QA automation and matches the Android SDK convention.
52-52: Add accessibility identifier to title label
Giving thetitleLabelthe IDinapp_titleensures consistent element identification across in-app messages.
59-59: Add accessibility identifier to message label
Tagging the body label withinapp_messageimproves reliability of UI tests by avoiding reliance on text content.
67-70: Standardize first action button and add accessibility ID
Switching tobuttonType="system"and assigninginapp_btn1enhances consistency and testability.
78-81: Standardize second action button and add accessibility ID
The second button now matches style and is taggedinapp_btn2. Great for cross-platform parity.
128-131: Enhance close button accessibility
Addingidentifier="inapp_close_btn", setting button traits, andisElement="YES"makes the close control fully discoverable for VoiceOver and UI tests.CleverTapSDK/InApps/resources/CTInterstitialViewController~iphoneland.xib (8)
2-3: Upgrade document & device appearance settings
Explicitly settingappearance="light"and updating the document version ensures consistency. Verify that older iOS versions and Dark Mode fallbacks render correctly in this landscape layout.
6-6: Synchronize IB plugin version
The plugin bump to23506matches other XIBs. Ensure your Xcode build agents have this plugin to avoid unintended XIB regeneration.
36-39: Standardize first button style & add accessibility ID
Changing tobuttonType="system"and addingidentifier="inapp_btn1"aligns styling with other in-apps and improves automation targeting.
48-51: Standardize second button style & add accessibility ID
The second action button now hassystemstyle andinapp_btn2for consistent theming and test hooks.
79-79: Add accessibility ID to title label
Assigninginapp_titleto the title label makes it easily locatable in UI tests without string matching.
86-86: Add accessibility ID to message label
Tagging the message label withinapp_messageenhances reliability of automated tests.
99-101: Mark background image as accessibility element
Addingidentifier="inapp_bg_img"andisElement="YES"to the imageView ensures it's exposed to UI automation frameworks.
137-139: Enhance close button accessibility
The close control now hasinapp_close_btnwith button traits andisElement="YES", making it fully accessible to assistive technologies and UI tests.CleverTapSDK/InApps/resources/CTHalfInterstitialViewController~ipadland.xib (9)
2-3: Update XIB document & device to iPad landscape
ThetoolsVersion="23504"plus explicitlayout="fullscreen"andappearance="light"match your other interface files. Please verify compatibility with your minimum Xcode version.
6-6: Align IB plugin version
Bumping toplugIn version="23506"aligns with the document schema. Ensure your build environment recognizes this plugin.
37-39: Add accessibility ID to background image
Tagging theimageViewwithinapp_bg_imgand marking it as an element is crucial for consistent QA automation.
52-52: Add accessibility ID to title label
Giving the titleinapp_titleensures straightforward element lookup in tests.
59-59: Add accessibility ID to message label
Settinginapp_messageon the message label empowers automated flows without fragility.
67-70: Style first button & add accessibility ID
Updating tobuttonType="system"andinapp_btn1improves both appearance and test coverage.
79-82: Style second button & add accessibility ID
Consistentsystemstyle andinapp_btn2locking ensure uniform behavior across all views.
130-133: Enhance close button accessibility
Close button now hasinapp_close_btn,accessibilityTraits, andisElement="YES". This makes it reliably detectable by VoiceOver and UI tests.
152-152: Canvas location metadata
ThecanvasLocationentry only affects Interface Builder’s UI layout. It can be ignored at runtime.CleverTapSDK/InApps/resources/CTCoverViewController~ipadland.xib (10)
2-3: Upgrade IB document & device settings
Updating totoolsVersion="23504"withlayout="fullscreen"andappearance="light"is consistent. Verify your Xcode version supports these attributes.
6-6: Synchronize IB plugin version
The plugin bump to23506should match your Xcode environment. Confirm no merge conflicts arise when Xcode regenerates this XIB.
26-33: Adjust container frame sizes
Multiple<rect>dimensions were updated to1210×834to support larger screen layouts. Ensure constraints still hold at runtime and update any UI snapshots accordingly.
37-39: Add accessibility ID to background image
Marking the backgroundimageViewasinapp_bg_imgwithisElement="YES"is key for UI automation.
51-53: Add accessibility ID to title label
The title label now hasinapp_title. This ensures stable element targeting.
58-60: Add accessibility ID to message label
Tagginginapp_messageon the message label keeps consistency across in-app screens.
67-70: Standardize first button & add accessibility ID
Switching the first button tosystemstyle withinapp_btn1improves both look and test integration.
79-82: Standardize second button & add accessibility ID
Second button now matches style and is taggedinapp_btn2, aligning with the rest of the SDK.
109-114: Enhance close button accessibility
Close button now usesinapp_close_btn,accessibilityTraits, andisElement="YES", making it fully accessible.
152-152: Note: Canvas Location
canvasLocationis only for Interface Builder positioning and doesn’t impact app behavior.CleverTapSDK/InApps/resources/CTHeaderViewController~ipad.xib (7)
2-2: Update XIB document version
Switching totoolsVersion="23504"standardizes this file with the rest. Verify no regressions occur in older Xcode installations.
6-6: Upgrade IB plugin version
Aligning theIBCocoaTouchPluginto23506ensures consistency. Double-check your build pipeline for plugin availability.
37-39: Add accessibility ID to icon image
Marking the header icon asinapp_iconwithisElement="YES"improves both VoiceOver support and test automation.
59-59: Add accessibility ID to title label
The title label’sinapp_titleidentifier ensures reliable targeting in tests and assistive tech.
66-66: Add accessibility ID to message label
Tagging the message label asinapp_messageaids automated validation without relying on static text.
89-89: Add accessibility ID to first header button
Settinginapp_btn1on the first button ensures consistent identification across different in-app components.
109-109: Add accessibility ID to second header button
The second button now carriesinapp_btn2. This matches other view controllers and streamlines automation.CleverTapSDK/InApps/resources/CTHalfInterstitialImageViewController~ipad.xib (6)
2-2: Document toolsVersion updated
Updating to Interface Builder toolsVersion 23504 is expected to keep files in sync with the latest Xcode.
3-3: Explicitly set layout and appearance
Specifyinglayout="fullscreen"andappearance="light"ensures consistent rendering and theming for iPad portrait.
6-6: PlugIn version bump
Upgrading the IBCocoaTouchPlugin version to 23506 aligns with the updated Interface Builder tools.
31-33: Add accessibility identifier for background image view
Addingidentifier="inapp_bg_img"and marking it as an accessibility element improves test automation and accessibility support, matching Android.
56-56: Add accessibility identifier for close button
Introducingidentifier="inapp_close_btn"on the dismiss button facilitates UI testing and accessibility navigation.
77-77: Canvas location metadata
This tag only affects the Interface Builder canvas and does not impact runtime behavior.CleverTapSDK/InApps/resources/CTHeaderViewController~ipadland.xib (7)
2-2: (No significant runtime effect changing document toolsVersion)
6-6: (PlugIn version bump matches the Interface Builder upgrade)
37-39: Mark icon image view as an accessibility element
Addingidentifier="inapp_icon"andisElement="YES"on the imageView improves accessibility discovery and aligns with Android SDK.
59-59: Add accessibility identifier to title label
Applyingidentifier="inapp_title"ensures the title label can be targeted in UI automation and by assistive technologies.
66-66: Add accessibility identifier to message label
Introducingidentifier="inapp_message"enhances testability and accessibility of in-app message content.
89-89: Add accessibility identifier to first button
Definingidentifier="inapp_btn1"on the first button facilitates UI tests and improves semantics for screen readers.
109-109: Add accessibility identifier to second button
Settingidentifier="inapp_btn2"on the second button aligns with automation and accessibility goals.CleverTapSDK/InApps/resources/CTInterstitialViewController~iphoneport.xib (7)
2-3: Interface Builder metadata updated
UpgradingtoolsVersionand settingappearance="light"ensures compatibility with current Xcode releases and consistent light mode rendering.
6-6: PlugIn version upgrade
Bumping the IBCocoaTouchPlugin to version 23506 matches the updated Interface Builder tools version.
42-44: Add accessibility identifier for background image view
Includingidentifier="inapp_bg_img"andisElement="YES"on the imageView improves accessibility and supports automated UI testing.
85-85: Add accessibility identifier to second button
Addingidentifier="inapp_btn2"enables reliable selection in UI tests and improved screen reader announcements.
114-114: Add accessibility identifier to message label
Definingidentifier="inapp_message"ensures that the message content is exposed to accessibility frameworks and automation scripts.
142-144: Add accessibility identifier for close button
Settingidentifier="inapp_close_btn"andisElement="YES"on the close button supports assistive technologies and testing.
163-163: Canvas location metadata
This change only affects Interface Builder’s visual canvas and has no impact on runtime behavior.CleverTapSDK/InApps/resources/CTHalfInterstitialImageViewController~iphoneport.xib (5)
2-3: (Document metadata bump is routine)
6-6: (PlugIn version upgrade aligns with Interface Builder update)
20-24: Adjust layout for 6.12-inch display
Updating the root view (393×852) and container frames (333×432.7) ensures the half-interstitial fits larger devices without clipping.
27-30: Add accessibility identifier to background image view
Introducingidentifier="inapp_bg_img"and marking the image view as an accessibility element facilitates automation and screen reader support.
43-47: Add accessibility identifier to dismiss button
Addingidentifier="inapp_close_btn"withisElement="YES"on the dismiss button improves accessibility and consistency across InApps components.CleverTapSDK/InApps/resources/CTInterstitialImageViewController~ipadland.xib (5)
2-3: (Updating document metadata to match Xcode version)
6-6: (PlugIn version bump is expected with Interface Builder upgrade)
31-34: Add accessibility identifier to background image view
Settingidentifier="inapp_bg_img"andisElement="YES"on the imageView ensures consistent accessibility handling and test locator support.
58-61: Add accessibility identifier to close button
Includingidentifier="inapp_close_btn"and marking it as an accessibility element aligns with QA automation needs and accessibility guidelines.
79-79: (Canvas location update does not affect runtime)CleverTapSDK/InApps/resources/CTInterstitialImageViewController~iphoneland.xib (4)
2-6: Interface Builder document and plugin version updated
The bump intoolsVersionand pluginversion="23506"matches our Xcode upgrade and stays consistent with other XIBs.
31-34: Accessibility identifier and element flag added to background image
Addingidentifier="inapp_bg_img"along with<bool key="isElement" value="YES"/>ensures the image view is exposed for UI automation.
58-61: Accessibility identifier and element flag added to close button
Marking the close button withidentifier="inapp_close_btn"andisElement="YES"improves consistency for QA tests.
79-79: Canvas location metadata inserted
The added<point key="canvasLocation" .../>is purely design-time metadata and has no effect at runtime.CleverTapSDK/InApps/resources/CTHalfInterstitialImageViewController~iphoneland.xib (3)
2-6: Updated Interface Builder document and plugin versions
The newtoolsVersionand plugin version reflect the Xcode upgrade and align with other resource files.
28-30: Accessibility identifier flagged for background image
The<accessibility>entry withidentifier="inapp_bg_img"andisElement="YES"correctly exposes the image for automated testing.
45-48: Accessibility identifier and traits for dismiss button
Addingidentifier="inapp_close_btn"with<accessibilityTraits key="traits" button="YES"/>andisElement="YES"makes the close control testable.CleverTapSDK/InApps/resources/CTCoverViewController~iphoneland.xib (8)
2-6: Document metadata updated
The XIB’stoolsVersion, plugin version, andappearance="light"attribute are consistent with the SDK’s updated styling.
37-40: Accessibility identifier for background image view
identifier="inapp_bg_img"withisElement="YES"correctly flags the background image for QA automation.
52-52: Accessibility identifier for title label
Addingidentifier="inapp_title"enables automated scripts to locate the title.
59-59: Accessibility identifier for message label
Theidentifier="inapp_message"entry improves test coverage for the message text.
67-70: Button type updated and identifier added to first button
ChangingbuttonType="system"modernizes the UI, andidentifier="inapp_btn1"exposes it for tests.
79-82: Identifier added to second button
identifier="inapp_btn2"is applied consistently to the second action button.
111-114: Accessibility identifier and traits on close button
Marking the close button withidentifier="inapp_close_btn",button="YES", andisElement="YES"supports automation hooks.
152-152: Canvas location metadata added
The<point key="canvasLocation" .../>tag is design-time only and safe to include.CleverTapSDK/InApps/resources/CTCoverViewController~iphoneport.xib (8)
2-6: Document and plugin version bump
Updated XIB metadata (toolsVersion, plugin version,appearance="light") is in line with other files.
37-40: Background image view accessibility identifier
identifier="inapp_bg_img"withisElement="YES"ensures the image is accessible to test scripts.
52-52: Title label accessibility identifier
Theidentifier="inapp_title"tag allows automated frameworks to find the title.
59-59: Message label accessibility identifier
Addingidentifier="inapp_message"improves the test automation for message content.
67-70: First button accessibility identifier
identifier="inapp_btn1"on the system-type button correctly flags it for UI tests.
79-82: Second button accessibility identifier
Consistent use ofidentifier="inapp_btn2"exposes the second button for automation.
111-114: Close button accessibility identifier
identifier="inapp_close_btn"is applied, making the dismiss control testable.
153-153: Canvas location metadata
Including<point key="canvasLocation" .../>has no runtime side effects.CleverTapSDK/InApps/resources/CTInterstitialViewController~ipad.xib (7)
2-6: XIB metadata updated for fullscreen iPad layout
The newlayout="fullscreen",appearance="light", and updated plugin version align with design standards.
35-38: Title label accessibility identifier
Addingidentifier="inapp_title"enables reliable UI test targeting of the title.
49-52: Background image view accessibility traits
identifier="inapp_bg_img"with image traits andisElement="YES"ensures proper exposure in automation.
69-70: Message label accessibility identifier
identifier="inapp_message"makes the message accessible for test assertions.
77-80: First button accessibility identifier
Applyingidentifier="inapp_btn1"on the system button supports QA automation.
89-92: Second button accessibility identifier
identifier="inapp_btn2"consistently flags the second action button for tests.
159-159: Canvas location metadata added
The<point key="canvasLocation" .../>entry is design-time only and safe.CleverTapSDK/InApps/resources/CTHalfInterstitialViewController~iphoneport.xib (4)
2-3: IB document modernization approved
UpdatedtoolsVersion, plugin version, and device identifier to support newer iPhone sizes and Xcode tooling.Also applies to: 6-6
26-26: Frame adjustments for larger screen
Root view and container frames have been resized for the new device dimensions. These changes align with Auto Layout previews and won’t affect runtime constraints.Also applies to: 30-30, 33-33
36-38: Accessibility: background image configured
Nice addition ofaccessibilityIdentifier="inapp_bg_img"and explicitisElement="YES"on theimageView.
130-133: Accessibility: close button configured correctly
The close button now hasidentifier="inapp_close_btn", properaccessibilityTraits="button", andisElement="YES". This aligns with best practices for tappable elements.CleverTapSDK/InApps/resources/CTInterstitialViewController~ipadland.xib (5)
2-3: IB document modernization approved
UpdatedtoolsVersion, plugin version, and device configuration to landscape fullscreen on iPad.Also applies to: 6-6
36-36: Button type updated to “system”
Both primary and secondary buttons have been migrated from deprecatedroundedRecttosystem. This modernizes the UI and improves consistency.Also applies to: 48-48
38-38: Accessibility: button identifiers added
Good addition ofinapp_btn1andinapp_btn2identifiers. These will support UI automation on iPad interstitials.Also applies to: 50-50
99-101: Accessibility: background image configured
Great job addingidentifier="inapp_bg_img"andisElement="YES"on the imageView.
137-139: Accessibility: close button configured correctly
The close button now hasidentifier="inapp_close_btn",accessibilityTraits="button", andisElement="YES". Perfect for tappable controls.
Summary by CodeRabbit
Accessibility Improvements
UI Updates