Fix interaction with Gmail app

1. do not map ignored role when a node has text. Much of Gmail appears to be marked as is important for accessibility == false. Unfortunately, this means most of the content in the mail message pane is actually hidden and skipped by ChromeVox.
Revise our mapping rule so that it only applies the ignored role if there is no text (content description or text).
2. compute a node's name based on its descendants. We currently do this for nodes which are clickable.
This covers Gmail's messages list. Each item in the messages list is exposed to Chrome as a "genericContainer" and has no name from the node itself.

By computing name from contents at this layer, we avoid having each service do it.

Test: manually.
Change-Id: I4f53b022c066cb9a6796ac3a0645c47e7d05bddc
Reviewed-on: https://chromium-review.googlesource.com/c/1318356
Commit-Queue: David Tseng <dtseng@chromium.org>
Reviewed-by: Yuki Awano <yawano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606214}
7 files changed