This directory contains the source code for a test app used to test widget accessibility.

The directory structure is as follows:

* lib/use_cases contains widgets implementing specific use-cases that the team
  has decided to be important to test.
* lib/use_cases/use_cases.dart provides a basic framework for use-cases, and a
  list of use-cases included in the app.
* lib/common contains code shared by multiple use-cases.
