From 77be2a09720b96aeba5c6820196e43aff385f478 Mon Sep 17 00:00:00 2001 From: patrickbodell Date: Tue, 23 Jun 2026 15:56:24 -0600 Subject: [PATCH 1/8] WIP --- README.md | 38 ++++++++--- app/build.gradle | 11 +++- .../axedevtoolssampleapp/AutoScanDemoTest.kt | 64 +++++++++++++++++++ .../InstrumentationRegistryExampleTest.kt | 9 +++ 4 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AutoScanDemoTest.kt diff --git a/README.md b/README.md index ff084aa..b73457c 100644 --- a/README.md +++ b/README.md @@ -8,22 +8,44 @@ A sample application built solely to showcase axe DevTools Android automated esp ------ -## Getting Started: +## Getting Started +We currently support two ways users can implement our library +#### Gradle Plugin +Users looking to keep the amount of code needed to implement our library to a minimum should look at +using our Gradle Plugin. Using this allows us to take on the boilerplate for you. With a few lines of +code in your `build.gradle` file you can have a report generated for you that covers the accessibility +violations in your app. We prefer this implementation in our own use of this library, so please try it out! + +#### Manual Dependencies +For those who would like more control over the dependencies and how they are implemented we also provide +our base library without implementing any code for you. Please note, we unfortunately cannot support +Auto Scan for users who opt to go this route. + +### Setting Up The Plugin 1. Clone the repository 2. Set up a new project on [axe Developer Hub](https://axe.deque.com/axe-watcher) to set up a Project ID and API Key. - - Or Grab an API key from the [settings page](https://axe.deque.com/settings) -3. In `app/build.gradle`, add your API Key in the `AXE_DEVTOOLS_APIKEY` variable -4. If you set up a project add your Project ID in the `app/build.gradle` under the `AXE_DEVTOOLS_PROJECT_ID` variable +3. In `app/build.gradle` Add `id 'com.deque.android' version '1.+'` to your plugins block and add your API key and project ID to the axeDevTools block shown in an example below. ```groovy -android { - def AXE_DEVTOOLS_APIKEY = "YOUR_API_KEY_HERE" - def AXE_DEVTOOLS_PROJECT_ID = "AXE_PROJECT_ID_HERE" +axeDevTools { + axeMobileApiKey = axe_api_key + axeProjectId = axe_project_id +} +``` +If you would like to customize the implementation of this further the following example shows all the configuration options we have available to you: +```groovy +axeDevTools { + axeMobileApiKey = axe_api_key + axeProjectId = axe_project_id + axeAutoScanMode = true // to enable auto scan mode (default false) + axeUploadResults = false // if you want to only look at results locally (default true) + axeAccountUrl = "www.custom-url.com" // found in your project settings on axe Developer Hub (default https://axe.deque.com) + axeHtmlReportPath = "/path/to/desired/folder" // customize where your accessibility reports are saved (defaults to your project's build/reports directory) } ``` -Once you add your variables you are ready to start scanning the application using the espresso tests. +Once you add your credentials you are ready to start scanning the application using the espresso tests. You can see accessibility testing in action through the `ExampleEndToEndAccessibilityTest` Espresso test or any other test in the `androidTest` folder. The `androidTest` folder contains examples of `Jeptpack Compose`, `XML` and `UiAutomator`. diff --git a/app/build.gradle b/app/build.gradle index 1034c63..f54cf85 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ plugins { id 'com.perfectomobile.instrumentedtest.gradleplugin' id 'org.jetbrains.kotlin.plugin.serialization' version '2.2.20' id("org.jetbrains.kotlin.plugin.compose") version "2.2.20" + id 'com.deque.android' version '1.0.1' +} + +axeDevTools { + axeMobileApiKey = axe_apikey + axeProjectId = axe_project_id + axeAutoScanMode = true + axeServerUrl ="https://mobile-qa.dequelabs.com" + axeUploadResults = false } android { @@ -157,8 +166,6 @@ dependencies { implementation 'com.google.android.material:material:1.10.0' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.2' - androidTestImplementation 'com.deque.android:axe-devtools-android:8.3.0' - // MLKit implementation for use with ADT Library implementation 'com.google.mlkit:text-recognition:16.0.1' diff --git a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AutoScanDemoTest.kt b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AutoScanDemoTest.kt new file mode 100644 index 0000000..bf85487 --- /dev/null +++ b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AutoScanDemoTest.kt @@ -0,0 +1,64 @@ +package com.deque.mobile.axedevtoolssampleapp + +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.createAndroidComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.action.ViewActions.click +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.ViewMatchers.isDisplayed +import androidx.test.espresso.matcher.ViewMatchers.withId +import androidx.test.espresso.matcher.ViewMatchers.withText +import androidx.test.ext.junit.runners.AndroidJUnit4 +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +/** + * Auto Scan Sample Test Suite: + * + * The purpose of this test class is to provide a sample test suite that emulates what a typical user + * experience might be like while using our Auto Scan feature. + * + * Please follow the README to ensure that you have properly set up the build.gradle file for this feature. + * If the project is properly set up for Auto Scan you should see an HTML report show up in your build/reports + * directory as well as a result uploaded to your scan result dashboard. + */ +@RunWith(AndroidJUnit4::class) +class AutoScanDemoTest { + + @get:Rule + val composeTestRule = createAndroidComposeRule() + + private fun openTab(menuItemId: Int) = onView(withId(menuItemId)).perform(click()) + + private fun getString(resId: Int): String = + composeTestRule.activity.getString(resId) + + @Test + fun catalogTabIsShownOnLaunch() { + // Catalog is the start destination, so its heading should be visible immediately. + onView(withId(R.id.catalog_heading)) + .check(matches(isDisplayed())) + .check(matches(withText(R.string.catalog))) + } + + @Test + fun navigatingToMenuShowsComposeContent() { + openTab(R.id.menu) + + // The Menu screen is rendered with Compose, so assert against the Compose tree. + composeTestRule.waitForIdle() + composeTestRule.onNodeWithText(getString(R.string.customer)).assertIsDisplayed() + composeTestRule.onNodeWithText(getString(R.string.james_anderson)).assertIsDisplayed() + composeTestRule.onNodeWithText(getString(R.string.log_out)).assertIsDisplayed() + } + + @Test + fun tabSelectionStateIsRestoredWhenReturningToCatalog() { + openTab(R.id.catalog) + onView(withId(R.id.catalog_heading)) + .check(matches(isDisplayed())) + .check(matches(withText(R.string.catalog))) + } +} \ No newline at end of file diff --git a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt index 3969191..edd7946 100644 --- a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt +++ b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt @@ -8,6 +8,7 @@ import androidx.test.uiautomator.Until import com.deque.mobile.axedevtoolssampleapp.test.BuildConfig import com.deque.mobile.devtools.AxeDevTools import org.junit.After +import org.junit.AfterClass import org.junit.Before import org.junit.Rule import org.junit.Test @@ -83,4 +84,12 @@ class InstrumentationRegistryExampleTest { fun tearDown() { axe.tearDown() } + + companion object { + @JvmStatic + @AfterClass + fun afterClass() { + + } + } } \ No newline at end of file From 26c5c3868ad22f849ae32419ded020ab5e1a707e Mon Sep 17 00:00:00 2001 From: patrickbodell Date: Tue, 30 Jun 2026 14:14:27 -0600 Subject: [PATCH 2/8] WIP --- README.md | 4 +- app/build.gradle | 2 +- .../axedevtoolssampleapp/AxeTestClass.kt | 34 +++++++++++++ .../InstrumentationRegistryExampleTest.kt | 48 ++++++------------- 4 files changed, 52 insertions(+), 36 deletions(-) create mode 100644 app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt diff --git a/README.md b/README.md index b73457c..f771efe 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Auto Scan for users who opt to go this route. ### Setting Up The Plugin 1. Clone the repository 2. Set up a new project on [axe Developer Hub](https://axe.deque.com/axe-watcher) to set up a Project ID and API Key. -3. In `app/build.gradle` Add `id 'com.deque.android' version '1.+'` to your plugins block and add your API key and project ID to the axeDevTools block shown in an example below. +3. In `app/build.gradle` Add `id 'com.deque.android' version '1.+'` to your plugins block and add your API key and project ID to the axeDevTools block shown in the example below. ```groovy axeDevTools { @@ -44,6 +44,8 @@ axeDevTools { axeHtmlReportPath = "/path/to/desired/folder" // customize where your accessibility reports are saved (defaults to your project's build/reports directory) } ``` +### Setting Up Manual Dependencies + Once you add your credentials you are ready to start scanning the application using the espresso tests. diff --git a/app/build.gradle b/app/build.gradle index f54cf85..54b38c9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ plugins { id 'com.perfectomobile.instrumentedtest.gradleplugin' id 'org.jetbrains.kotlin.plugin.serialization' version '2.2.20' id("org.jetbrains.kotlin.plugin.compose") version "2.2.20" - id 'com.deque.android' version '1.0.1' + id 'com.deque.android' version '1.1.0' } axeDevTools { diff --git a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt new file mode 100644 index 0000000..6bbea3e --- /dev/null +++ b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt @@ -0,0 +1,34 @@ +package com.deque.mobile.axedevtoolssampleapp + +import com.deque.mobile.axedevtoolssampleapp.test.BuildConfig +import com.deque.mobile.devtools.AxeDevTools +import org.junit.AfterClass + +abstract class AxeTestClass { + + init { + /** + * Start a session on axe Developer Hub with a valid API key and your project ID. If + * a session has already been started for this test suite, that session will be used instead + * of creating a new session. + * + * You can find and create a projects here : https://axe.deque.com/axe-watcher + */ + + axe.startScanSession( + apiKey = BuildConfig.AXE_DEVTOOLS_APIKEY, + projectId = BuildConfig.AXE_DEVTOOLS_PROJECT_ID + ) + } + + companion object { + val axe = AxeDevTools() + + @JvmStatic + @AfterClass + fun afterClass() { + axe.tearDown() + axe.generateHtmlReportAndSummary("name") + } + } +} \ No newline at end of file diff --git a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt index edd7946..098177c 100644 --- a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt +++ b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt @@ -5,36 +5,29 @@ import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.By import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.Until -import com.deque.mobile.axedevtoolssampleapp.test.BuildConfig -import com.deque.mobile.devtools.AxeDevTools -import org.junit.After -import org.junit.AfterClass import org.junit.Before import org.junit.Rule import org.junit.Test -class InstrumentationRegistryExampleTest { +/** + * Instrumentation Registry Sample Test Suite: + * + * The purpose of this test class is to provide a sample test suite that emulates what a typical user + * experience might be like while running a targeted scan via the InstrumentationRegistry. + * + * Please follow the README to ensure that you have properly set up the build.gradle file for this feature. + * If the project is properly set up you should see an HTML report show up in your build/reports + * directory as well as a result uploaded to your scan result dashboard. + * + * Please also reference the AxeTestClass. + */ + +class InstrumentationRegistryExampleTest : AxeTestClass() { @Rule @JvmField val rule: ActivityScenarioRule = ActivityScenarioRule(MainActivity::class.java) - - private val axe = AxeDevTools() - - init { - /** - * Start a session on axe Developer Hub with a valid API key and your project ID. - * - * You can find and create a projects here : https://axe.deque.com/axe-watcher - */ - - axe.startSession( - apiKey = BuildConfig.AXE_DEVTOOLS_APIKEY, - projectId = BuildConfig.AXE_DEVTOOLS_PROJECT_ID - ) - } - @Before fun setupAxeDevTools() { val instrumentation = InstrumentationRegistry.getInstrumentation() @@ -79,17 +72,4 @@ class InstrumentationRegistryExampleTest { // 3. Save the result JSON to a local file for later use scanResultHandler?.saveResultToLocalStorage("axe") } - - @After - fun tearDown() { - axe.tearDown() - } - - companion object { - @JvmStatic - @AfterClass - fun afterClass() { - - } - } } \ No newline at end of file From 479e0256fe46d2380d2ddbe252d357011914a2b7 Mon Sep 17 00:00:00 2001 From: patrickbodell Date: Tue, 30 Jun 2026 15:55:30 -0600 Subject: [PATCH 3/8] Update the sample app to give examples of an auto scan implementation as well as a targeted scan implementation. --- app/build.gradle | 2 +- .../com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt | 3 +++ .../InstrumentationRegistryExampleTest.kt | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 54b38c9..5895dbe 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ axeDevTools { axeMobileApiKey = axe_apikey axeProjectId = axe_project_id axeAutoScanMode = true - axeServerUrl ="https://mobile-qa.dequelabs.com" + axeAccountUrl = "https://axe.deque.com" axeUploadResults = false } diff --git a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt index 6bbea3e..8047107 100644 --- a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt +++ b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt @@ -28,6 +28,9 @@ abstract class AxeTestClass { @AfterClass fun afterClass() { axe.tearDown() + + // Generates a report of all scans in a given test class to a report that + // tells you which accessibility violations we found. axe.generateHtmlReportAndSummary("name") } } diff --git a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt index 098177c..0487822 100644 --- a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt +++ b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/InstrumentationRegistryExampleTest.kt @@ -19,7 +19,7 @@ import org.junit.Test * If the project is properly set up you should see an HTML report show up in your build/reports * directory as well as a result uploaded to your scan result dashboard. * - * Please also reference the AxeTestClass. + * Please also check out the AxeTestClass for an example of how to set up our main interface. */ class InstrumentationRegistryExampleTest : AxeTestClass() { @@ -69,7 +69,7 @@ class InstrumentationRegistryExampleTest : AxeTestClass() { // } // assertEquals(6, fails) -// 3. Save the result JSON to a local file for later use +// 3. Save the AxeResult JSON to a local file for later use scanResultHandler?.saveResultToLocalStorage("axe") } } \ No newline at end of file From c03bb67bcdb4c3c0a2933177c92726577661c610 Mon Sep 17 00:00:00 2001 From: patrickbodell Date: Wed, 1 Jul 2026 10:17:09 -0600 Subject: [PATCH 4/8] Fixing build errors --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5895dbe..d0f735a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ plugins { } axeDevTools { - axeMobileApiKey = axe_apikey - axeProjectId = axe_project_id + axeMobileApiKey = project.findProperty('axe_apikey') ? axe_apikey : "" + axeProjectId = project.findProperty('axe_project_id') ? axe_project_id : "" axeAutoScanMode = true axeAccountUrl = "https://axe.deque.com" axeUploadResults = false From 0c476f2e2eeb000a52fd9869da94153e16ff7375 Mon Sep 17 00:00:00 2001 From: patrickbodell Date: Wed, 1 Jul 2026 10:51:51 -0600 Subject: [PATCH 5/8] Updating readme --- README.md | 59 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index f771efe..863c340 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Android Sample App for axe DevTools Mobile by Deque -A sample application built solely to showcase axe DevTools Android automated espresso test implementation. It is non-functional and made inaccessibly by design. +A sample application built solely to showcase axe DevTools Android automated espresso test implementation. It is non-functional and made inaccessible by design. ## Helpful Links - Library documentation and more information on automated or manual testing can be found at [docs.deque.com](https://docs.deque.com/devtools-mobile/). @@ -9,52 +9,69 @@ A sample application built solely to showcase axe DevTools Android automated esp ------ ## Getting Started -We currently support two ways users can implement our library +We currently support two ways to scan your app for accessibility issues, both delivered through our Gradle Plugin. -#### Gradle Plugin +#### Auto Scan Users looking to keep the amount of code needed to implement our library to a minimum should look at -using our Gradle Plugin. Using this allows us to take on the boilerplate for you. With a few lines of -code in your `build.gradle` file you can have a report generated for you that covers the accessibility -violations in your app. We prefer this implementation in our own use of this library, so please try it out! +Auto Scan. Enabling it lets our Gradle Plugin take on the boilerplate for you. With a few lines of +configuration in your `build.gradle` file, a report is generated for you that covers the accessibility +violations in your app, with no test code required. We prefer this implementation in our own use of this library, so please try it out! -#### Manual Dependencies -For those who would like more control over the dependencies and how they are implemented we also provide -our base library without implementing any code for you. Please note, we unfortunately cannot support -Auto Scan for users who opt to go this route. +#### Targeted Scan +For those who would like more control over when and what gets scanned, you can run targeted scans by +calling `axe.scan()` directly in your tests. This lets you scan a specific screen or state exactly when +you want to. -### Setting Up The Plugin -1. Clone the repository +### Setting Up Auto Scan +1. Clone the repository. 2. Set up a new project on [axe Developer Hub](https://axe.deque.com/axe-watcher) to set up a Project ID and API Key. -3. In `app/build.gradle` Add `id 'com.deque.android' version '1.+'` to your plugins block and add your API key and project ID to the axeDevTools block shown in the example below. +3. In `app/build.gradle`, add `id 'com.deque.android' version '1.+'` to your plugins block, then add your API key and project ID to the axeDevTools block and set `axeAutoScanMode = true` as shown in the example below. ```groovy axeDevTools { - axeMobileApiKey = axe_api_key + axeMobileApiKey = axe_apikey axeProjectId = axe_project_id + axeAutoScanMode = true } ``` If you would like to customize the implementation of this further the following example shows all the configuration options we have available to you: ```groovy axeDevTools { - axeMobileApiKey = axe_api_key + axeMobileApiKey = axe_apikey axeProjectId = axe_project_id axeAutoScanMode = true // to enable auto scan mode (default false) axeUploadResults = false // if you want to only look at results locally (default true) - axeAccountUrl = "www.custom-url.com" // found in your project settings on axe Developer Hub (default https://axe.deque.com) + axeAccountUrl = "https://www.custom-url.com" // found in your project settings on axe Developer Hub (default https://axe.deque.com) axeHtmlReportPath = "/path/to/desired/folder" // customize where your accessibility reports are saved (defaults to your project's build/reports directory) } ``` -### Setting Up Manual Dependencies +### Setting Up Targeted Scan +Targeted scans use the same Gradle Plugin, but with Auto Scan turned off so you control when scans run. Call `axe.scan()` in your tests wherever you want to capture results — see `InstrumentationRegistryExampleTest` and `AxeTestClass` for a working example. +1. Clone the repository. +2. Set up a new project on [axe Developer Hub](https://axe.deque.com/axe-watcher) to set up a Project ID and API Key. +3. In `app/build.gradle`, add `id 'com.deque.android' version '1.+'` to your plugins block and add your API key and project ID to the axeDevTools block (leave `axeAutoScanMode` omitted or set to `false`): + + ```groovy + axeDevTools { + axeMobileApiKey = axe_apikey + axeProjectId = axe_project_id + } + ``` +4. Call `axe.scan()` in your test code where you want to run a scan, as shown in `AxeTestClass`. + +> **Prefer to manage the dependency yourself?** Instead of applying the Gradle Plugin, you can add our base library directly with `androidTestImplementation 'com.deque.android:axe-devtools-android:current-release'` in your `dependencies` block. Note that Auto Scan is not available when using this approach. + +## Running the Tests -Once you add your credentials you are ready to start scanning the application using the espresso tests. +Once you have set up either Auto Scan or a Targeted Scan, you are ready to start scanning the application using the Espresso tests. -You can see accessibility testing in action through the `ExampleEndToEndAccessibilityTest` Espresso test or any other test in the `androidTest` folder. -The `androidTest` folder contains examples of `Jeptpack Compose`, `XML` and `UiAutomator`. +You can see accessibility testing in action through the `AutoScanDemoTest` and `InstrumentationRegistryExampleTest` tests, or any other test in the `androidTest` folder. +These include examples using `Jetpack Compose` and `UiAutomator`. You can kick it off from Android Studio, or through an automated service such as Perfecto, Sauce Labs, etc. _Note:_ -- This project is set to use the Android Gradle plugin version 8.11.2. Running the project with newer, or older, JDK versions may require you to update the Gradle plugin version accordingly. Please refer to [Android's Updating the Gradle Plugin](https://developer.android.com/studio/releases/gradle-plugin#updating-plugin) documentation for more. +- This project is set to use the Android Gradle plugin version 8.10.1. Running the project with newer, or older, JDK versions may require you to update the Gradle plugin version accordingly. Please refer to [Android's Updating the Gradle Plugin](https://developer.android.com/studio/releases/gradle-plugin#updating-plugin) documentation for more. ### Perfecto From 776a0894df40ac5bbd651343a3d23c6540790d6c Mon Sep 17 00:00:00 2001 From: pat-deque <92315936+pat-deque@users.noreply.github.com> Date: Wed, 1 Jul 2026 11:16:23 -0600 Subject: [PATCH 6/8] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt index 8047107..dab40a1 100644 --- a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt +++ b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt @@ -27,11 +27,11 @@ abstract class AxeTestClass { @JvmStatic @AfterClass fun afterClass() { - axe.tearDown() - // Generates a report of all scans in a given test class to a report that // tells you which accessibility violations we found. - axe.generateHtmlReportAndSummary("name") + axe.generateHtmlReportAndSummary("axe") + + axe.tearDown() } } } \ No newline at end of file From 11d665cc454f38c2dbd3498afa9e343356c84355 Mon Sep 17 00:00:00 2001 From: pat-deque <92315936+pat-deque@users.noreply.github.com> Date: Wed, 1 Jul 2026 11:18:46 -0600 Subject: [PATCH 7/8] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt index dab40a1..23954f9 100644 --- a/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt +++ b/app/src/androidTest/java/com/deque/mobile/axedevtoolssampleapp/AxeTestClass.kt @@ -12,7 +12,7 @@ abstract class AxeTestClass { * a session has already been started for this test suite, that session will be used instead * of creating a new session. * - * You can find and create a projects here : https://axe.deque.com/axe-watcher + * You can find and create projects here: https://axe.deque.com/axe-watcher */ axe.startScanSession( From 5aeea982a38300f6220ec313a2f64a79c4270a9d Mon Sep 17 00:00:00 2001 From: patrickbodell Date: Wed, 1 Jul 2026 15:14:36 -0600 Subject: [PATCH 8/8] remove unecessary deps --- app/build.gradle | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d0f735a..5644fb7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -166,9 +166,6 @@ dependencies { implementation 'com.google.android.material:material:1.10.0' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.2' - // MLKit implementation for use with ADT Library - implementation 'com.google.mlkit:text-recognition:16.0.1' - implementation 'androidx.activity:activity-compose:1.8.0' implementation platform('androidx.compose:compose-bom:2023.03.00') implementation 'androidx.compose.ui:ui'