-
Notifications
You must be signed in to change notification settings - Fork 23
ARIA AT App Database Implementation
Last Edited: January 22, 2024
This document describes the current state of the ARIA-AT App’s database, as at the last edited date. This includes information on the entities, their columns, relationships and any other relevant information or considerations.
The most recent changes are based on discussions around ARIA-AT App Update Proposal V2.

Stores data on assistive technologies being referenced in the application.
Columns
| id (int) - PK | Auto incrementing identifier |
|---|---|
| name (text) | Name of assistive technology |
Stores data on assistive technology modes.
Columns
| atId (int) - PK FK | Foreign key identifier for an assistive technology (At.id) |
|---|---|
| name (text) - PK | Name of the assistive technology’s mode |
| screenText (text) | Content to be displayed for the assistive technology's mode; sourced from AT_KEY-commands.csv > settings |
| instructions (text[]) | Collection of instructions to be displayed for the assistive technology's mode; sourced from AT_KEY-commands.csv > instructions |
Stores data on assistive technology versions.
Columns
| id (int) - PK | Auto incrementing identifier |
|---|---|
| name (text) | Name of the assistive technology’s version |
| releasedAt (timestamp) | Timestamp of when the browser version as released |
| atId (int) - FK | Foreign key identifier for an assistive technology (At.id) |
Stores data on browsers being referenced in the application.
Columns
| id (int) - PK | Auto incrementing identifier |
|---|---|
| name (text) | Name of browser |
Stores data on browser versions.
Columns
| id (int) - PK | Auto incrementing identifier |
|---|---|
| name (text) | Name of the browser’s version |
| browserId (int) - FK | Foreign key identifier for a browser (Browser.id) |
Stores data on the user roles being used in the system
Columns
| name (text) - PK | Name of the role |
|---|
Stores up to date information on a Test Plan. Do note that even though the name here represents what the WM calls a test plan, it isn’t the same. This is more synonymous with the references.csv as pulled from the w3c/aria-at/tests/PATTERN/data/references.csv folder.
This represents a source of truth for what is the most up to date references for a Test Plan’s name and information in the application. It should dramatically reduce the need to derive test plan information unnecessarily during queries.
Columns
| id (int) - PK | Auto incrementing identifier |
|---|---|
| title (text) | The most recent title found for the test plan. This comes from the tests’ references.csv file |
| directory (text) | The most recent identifier name found for the test plan. This comes from the tests’ directory’s names |
Stores data on test plan reports in the system, which is primarily used to indicate the overall state of an individual report covering a unique combination of a Test Plan Version and its associated At and Browser. A derived collection of TestPlanReports is what can be best considered as the WM's definition of a Test Plan.
Columns
| id (int) - PK | Auto incrementing identifier |
|---|---|
| testPlanVersionId (int) - FK | Foreign key identifier for a Test Plan Version (TestPlanVersion.id) |
| atId (int) - FK | Foreign key identifier for an assistive technology (At.id) |
| browserId (int) - FK | Foreign key identifier for a browser (Browser.id) |
| vendorReviewStatus (text) | An enumerated field which should only take IN_PROGRESS and READY, which represents a state of “readiness” when a test plan report can be reviewed if the TestPlanVersion.phase is CANDIDATE |
| metrics (json) | An object holding calculated data such as, but not limited to the number of tests, the number of conflicts, the number of tests failed, passed, and more for the test plan report. Used for display purposes when applicable, to guarantee a faster page load |
| createdAt (timestamp) | The time the test plan report was created (added to the Test Queue) |
| markedFinalAt (timestamp) | The time the test plan report was marked as being able to be included in any final reports for the associated Test Plan Version |
Stores data on the recorded test results of a specific User, for an assigned TestPlanReport.
Columns
| id (int) - PK | Auto incrementing identifier |
|---|---|
| testerUserId (int) - FK | Foreign key identifier for a user running this test plan run (User.id) |
| testPlanReportId (int) - FK | Foreign key identifier for the test plan report (TestPlanReport.id) this run is attached to |
| testResults (json) | An object holding the collection of test run results which have been persisted by the user’s actions, such as navigating through a Test Run page or submitted a result |
Used to capture a snapshot of the w3c/aria-at/tests at a given time. The data is separated by each defined pattern (alert, checkbox, etc).
Columns
| id (int) - PK | Auto incrementing identifier |
|---|---|
| testPlanId (int) - FK | Foreign key identifier for the test plan (TestPlan) |
| phase (text) | An enumerated field which should only take RD, DRAFT, CANDIDATE, RECOMMENDED and DEPRECATED which represents different phases a test plan version can be |
| gitSha (text) | The git sha of the default branch when the information of the test(s) was pulled from w3c/aria-at |
| gitMessage (text) | The git message of the default branch when the information of the test(s) was pulled from w3c/aria-at |
| testPageUrl (text) | Generated url for the tests found in the w3c/aria-at/tests/*pattern*/reference folder. The application opens this link through a proxy when needing to view a test from the application (such as with the Open Test button found on the Test Run page) |
| hashedTests (text) | Used to uniquely identify tests for a Test Plan Version. A huge benefit of this is not having to capture every test plan unnecessarily with no change, when a new "version" of the tests are imported. |
| versionString (text) | Used to uniquely identify versions of a Test Plan Version for display purposes in the format of YYYY.MM.DD once they are imported. If multiple versions are imported on the same day, the subsequent will be appended with '-x', such that the x represents the order in which that specific version was imported for that day. eg. '2024.01.22, 2024.01.22-1' |
| tests (json) | An object containing information on all tests related to the test plan version for the referenced pattern |
| metadata (json) | An object containing information with other miscellaneous data found in the references.csv, along with which version of the test format is being used |
| updatedAt (timestamp) | Time when the test plan version was imported. This can also be thought of as having the Research and Development phase being completed (RD) |
| draftPhaseReachedAt (timestamp) | Time when the test plan version was promoted to DRAFT (moved to the Test Queue) |
| candidatePhaseReachedAt (timestamp) | The time the test plan version was promoted to CANDIDATE |
| recommendedPhaseTargetDate (timestamp) | The time the test plan version should be promoted to RECOMMENDED. This is calculated based on the candidatePhaseReachedAt and the 180 days described in the WM for the recommended time the Test Plan should remain in the CANDIDATE phase. This value can be manually updated |
| recommendedPhaseReachedAt (timestamp) | The time the test plan version was promoted to RECOMMENDED |
| deprecatedAt (timestamp) | The time the test plan version was set to DEPRECATED |
Data on users which are allowed to sign into the application.
Columns
| id (int) - PK | Auto incrementing identifier |
|---|---|
| username (text) | Name of user (GitHub handle) |
| createdAt (timestamp) | Time when the user was created |
| updatedAt (timestamp) | Time when the user was last updated |
Used to support a many-to-many relationship between users and roles. Users can have multiple roles.
Columns
| userId (int) - PK FK | Foreign key identifier for a user (User.id) |
|---|---|
| roleName (text) - PK FK | Foreign key identifier for a role (Role.id) |
- One-to-many with AtMode
- One-to-many with AtVersion
- One-to-many with TestPlanReport
- Many-to-one with At
- Many-to-one with At
- One-to-many with BrowserVersion
- One-to-many with TestPlanReport
- Many-to-one with Browser
- One-to-many with UserRoles
- One-to-many with TestPlanVersion
- Many-to-one with At
- Many-to-one with Browser
- One-to-many with TestPlanRun
- Many-to-one with TestPlanVersion
- Many-to-one with TestPlanReport
- Many-to-one with User
- Many-to-one with TestPlan
- One-to-many with TestPlanVersion
- One-to-many with TestPlanRun
- One-to-many with UserRoles
- Many-to-one with Role
- Many-to-one with User