Add accessibility for new tiles.

Accessibility is as follows:

* For small tiles, we use the content description and the state
  description to indicate the current name and state. If the tile is a
  toggle (as determined by its accessibility class name) we add
  ToggleableState (and the corresponding role).
* For large tiles, we use the text in the label, as well as the state
  description. If the secondary label content is contained in the state
  description, we ignore it for a11y as it will be read
  (stateDescription has precedence because it will be read on state
  changes).
* For single target large tiles, their role and ToggleableState is the
  same as for small tiles.
* For dual target large tiles, they should always be a Button, with the
  dual target being a Toggle. The content description and state
  description is also applied to the toggle button.
* Long press actions have the correct description label.

Test: atest PlatformScenarioTests
Test: atest TileUiStateTest
Bug: 359523013
Flag: com.android.systemui.qs_ui_refactor_compose_fragment

Change-Id: I178873fb813e4986e88c71f19be319d7fbb7edd8
7 files changed