On this page:
- Add mobile applications to test
- Resigning for physical iOS devices
- Start a testing session
- Scan for accessibility issues
- Screen naming and flaw matching
- View and manage your results within the Level Access Platform
Add mobile applications to test
To add mobile applications to test:
Bundle ID and App ID
You must have a mobile Digital asset in your Digital asset portfolio with a valid bundle ID (iOS) or app ID (Android). To confirm if you have the bundle ID or app ID configured in your Digital asset:
- Go to Digital assets.
- Select the mobile digital asset you want to review.
- Under App status on the Overview page, select the Edit button.
- Review if the Bundle ID or App ID has been entered.
Important! Please reach out to your Account Manager if you need to change the Bundle ID or App ID.
Run mobile applications
You can test mobile applications using Level Access Desktop by installing the application on a real device, running the application using Android Studio’s emulator functionality, or running the application using Xcode’s Simulator functionality.
Real device
Ensure that the application that you want to test is installed on the real device you want to use for testing.
Android Studio emulators and Xcode simulators
Please refer to Android Studio or Xcode documentation for instructions on running a mobile application on an emulator or simulator.
Resigning for physical iOS devices
Resigning is required to run automated accessibility tests on physical iOS devices. Resigning is not needed for iOS simulators, Android devices, or Android simulators. An Apple Account enrolled in the Apple Developer Program ($99 per year) is required for resigning.
Register device
Find UDID
To find your UDID:
- Connect your iOS device to your Mac.
- Open Finder and select your device from the sidebar.
- Select the device model. The label will change to show your device's UDID.
- Copy the UDID.
Register with Apple
To register with Apple:
- Log into the Apple Developer Portal.
- Select Devices in the Certificates, IDs & Profiles section.
- Activate the + button to register a new Device.
- Fill in the following details:
- Platform: Select iOS, iPadOS, tvOS, watchOS, or visionOS.
- Device Name: Enter the device name, as used in the portal.
- Device ID (UDID): Paste the UDID.
- Select Continue.
- Double check the entered details.
- Select Register.
Register identifier
To register an identifier:
- Within the Apple Developer Portal, select Identifiers in the Certificates, IDs & Profiles section.
- Select the + button to register a new Identifier.
- Select App IDs and press Continue.
- Select App and press Continue.
- Fill in the following details:
- Description: A short description of your mobile application.
- Bundle ID type: Explicit or wildcard.
- Bundle ID value: (example) com.company.app
- Select Continue.
- Review your previously entered details.
- Select Register.
Register certificate
To register a certificate:
- Within the Apple Developer Portal, go to the Certificates section.
- Press the + button to register a new Certificate.
- Select iOS App Development under the Software section and press Continue.
- Follow Apple’s steps to create a certificate signing request.
- Select the downloaded file, e.g. CertificateSigningRequest.certSigningRequest.
- Select Continue.
- Select Download to download a .cer file.
- Open Finder and double click the .cer file to install it.
Please note: To use your certificate, you must have Apple's Root Certificates and Intermediate Certificates in your keychain.
This is automatically managed by Xcode. However, if you have never signed an iOS application before, please download the following certificates:
- Apple Inc. Root
- Apple Root CA - G2 Root
- Apple Root CA - G3 Root
- Worldwide Developer Relations Certificate Authority (Expiring 02/20/2030)
- Worldwide Developer Relations - G4 (Expiring 12/10/2030)
- Developer ID - G2 (Expiring 09/17/2031)
To install each downloaded certificate, right click and open with Keychain Access.
Register profile
To register a profile:
- Within the Apple Developer Portal, go to the Profiles section.
- Select the + button to register a new Provisioning Profile.
- Select the iOS App Development option in the Development section.
- Select Continue.
- Select the mobile application that you created when registering the identifier in the App ID dropdown.
- Select Continue.
- Select the Certificates that you wish to include.
- Select Continue.
- Select the Devices that you wish to include.
- Select Continue.
- Enter a name for your Provisioning Profile, e.g. Company Year-Month-Day.
- Select Generate and wait a few seconds.
- Select Download to download the Provisioning Profile. The downloaded file can be used to resign.
Perform resign
Open Level Access Desktop.
Select the Level Access Desktop Settings button in the sidebar.
Open the Resigning section.
Select the iOS tab.
Select the Provisioning Profile field.
Select the downloaded Provisioning Profile, e.g. Company Year-Month-Day.mobileprovision.
Select your Signing Identity.
Select the Resign button.
Start a testing session
To test your configuration:
Test configuration
Log into Level Access Desktop.
-
Configure Android and iOS paths within the Desktop Settings.
Please refer to the Paths section in the Installation guide.
Ensure that your real device is connected to your computer, or that your emulator or simulator is open with the mobile application you wish to test installed.
Select the device that you want to test with from the Device drop down.
Select your Level Access workspace from the Workspace drop down.
Select your Digital asset from the Digital asset drop down.
Select your mobile application from the App drop down.
Activate the Run button next to the Device drop down.
Once the app launches, choose the scan workflow that best matches your testing goal:
| Scan workflow | Use when | How it works |
|---|---|---|
| Crawled scan | You want broader coverage across multiple screens with less manual navigation. |
On-Device Testing automatically navigates through the app, discovers screens, and scans them based on crawl limits that you configure. |
| Supervised scan | You want to manipulate and test a specific screen, state, or user journey. |
You navigate to each screen yourself, create or select the screen, and run the scan from that screen card. |
| Standalone scan | You want to manually test a specific screen, state, or user journey without the findings being tracked through flaw matching. | You navigate to each screen yourself, create or select the screen, and run the scan from that screen card. |
Scan for accessibility issues
On-Device Testing supports three scan workflows: Crawled scan, Supervised scan, and Standalone scan. Crawled scans help discover and scan screens automatically. Supervised scans let you manipulate and control exactly which screen is scanned. Standalone scans use the Supervised scan functionality but none of the findings are tracked through the flaw matching functionality.
Create a new scan
To create a new scan:
- Create a new scan by selecting New Scan.
- Input a title in the Scan Title field.
- Select the scan workflow:
- Crawled Scan to let ODT automatically navigate and scan screens.
- Supervised Scan to manually navigate and scan individual screens, with findings tracked with Flaw Matching.
- Standalone Scan to manually navigate and scan individual screens, without findings tracked with Flaw Matching.
- Select Create.
- Select the scan card with the title of your scan.
Run a crawled scan
A crawled scan lets ODT navigate your app automatically, discover screens, and scan those screens without requiring you to manually trigger each scan.
Tip: Use crawled scans for broad coverage and regression testing. For flows that require specific credentials, two-factor authentication, payment details, or other manual input, start the crawl after completing those steps or use a supervised scan or standalone scan for those screens.
Configure crawl limits
Before starting the crawl, in the Desktop Settings, set limits to control how far and how long ODT will explore the app.
| Setting | Description |
|---|---|
| Depth limit | The maximum number of navigation steps ODT can take from the starting screen. |
| Scroll limit | The maximum number of scroll actions ODT can perform on a screen to reveal additional content. |
| Time limit | The maximum total amount of time the crawl can run. |
Run a supervised scan or a standalone scan
A supervised scan or a standalone scan lets you manually choose the exact app screen or state to test. Use supervised scans and standalone scans for targeted validation, authenticated flows, screens that require specific user input, or follow-up testing after defects are remediated.
Tip: Use standalone scans for testing for iterative or non-production applications with components or elements that you do not want tracked for Flaw Matching. For scans that product-ready or in production elements, use a supervised scan.
Create or select a screen to scan
- Using your simulator, emulator, or real device, go to the screen you wish to scan.
- In Level Access Desktop, select New Screen, or select an existing saved screen if you are retesting the same screen.
- Input a descriptive name in the Screen name field. Use the same screen name across scans when retesting so findings can be matched consistently.
- Select Create.
Scan screens
- Confirm the app is displaying the screen or state you want to test.
- Activate scanning by selecting Scan screen in the screen card you want to test.
- Once the screen has been successfully scanned, the screen card is updated with a small screenshot of the screen and a Scan Completed label.
- Repeat these steps for as many screens as you need to test.
End Session
To end a session:
- Select Save and End Session.
- A pop up will ask you to confirm that you wish to end your session.
- When your scan is Complete, all scanned screens will populate on your screen with high-level findings.
- To view and manage your results within Level Access Platform, select the View scan results link or use the instructions below.
Screen naming and flaw matching
Flaw matching helps ODT identify when the same accessibility issue appears across multiple scans. Instead of treating every scan result as a completely new issue, ODT compares findings so teams can understand whether an issue is new, still present, or has reappeared.
Why screen names matter
Screen names are part of the information used for flaw matching. Use consistent, descriptive screen names when scanning the same screen across releases or test runs. For example, use Login, Product Details, or Checkout instead of generic names such as Screen 1.
For standalone scans, create or select the same saved screen name when retesting a screen. For crawled scans, review discovered screens after the crawl and rename them if needed so they match the naming conventions used by your team.
How flaw matching works
ODT compares findings using a combination of information from the scan, including:
- Screen name
- Element metadata and bounds
- Mobile Engine rule
Based on this comparison, findings can be classified as:
| Finding status | Description |
|---|---|
| New | The finding has not previously been detected on that screen. |
| Known | The finding was detected in a previous scan and is still present. |
| Reopened | The finding was previously resolved but has appeared again. |
Best practices for reliable flaw matching
- Use consistent names for the same screen across scans.
- Rename automatically discovered crawled screens when the default name is unclear.
- Use standalone scans for screens that require a very specific app state.
- Run crawled scans from a stable starting point, such as the home screen after login.
- Avoid changing screen names between releases unless the screen itself has meaningfully changed.
View and manage your results
- Open the Scans tab to view completed scans in the Mobile Scans table.
- The table includes a Scan Type column to distinguish crawled scans from standalone scans.
- Crawled scans may include multiple discovered screens under the same scan.
-
Select a Scan title to view your scan results dashboard.
-
A list of individual findings is generated within the Report table. Select a Rule Description to review the Findings details, which include:
What is the problem
Where is it located
-
Location by CSS selector
XML element
-
Finding status, such as Open, Closed, or Reopened
-
Guidance, including:
Why it matters
What to do
How to fix it
-
- Select a Scan title to view your scan details.
- Select a Scan title to view your scan results dashboard.
- Go to Findings details to review:
- What is the problem
- Where is it located
- Location by CSS selector
- XML element
- Guidance, including:
- Why it matters
- What to do
- How to fix it
Comments
0 comments
Article is closed for comments.