-
Christian Hergert authored
This is an initial implementaiton of GtkAccessibleText which was added to GTK for 4.14. It attempts to implement things in a very similar fashion to the previous code for GTK 3 although considerable effort was made to simplify and improve readability as to how it works. Currently, this supports reading back what you type and what has changed on screen. It is not yet 1:1 what the GTK 3 a11y implementation did because ATK was doing many other things (including proxying keyboard keys) to the other side of the a11y bus. That appears to improve readback by screen readers in the form of "backspace" and what character was deleted. I expect things to get closer to 1:1 but that work is going to have to be done inside of GTK itself first and should not require much if anything here. A new VteTerminal:enable-a11y feature flag property has been added because I'm concerned about enabling this by default until the a11y bus learns to be more lazy. Currently there is no way to "do nothing" until a peer (e.g. screenreader) is interested in the contents. Ideally, we would have a short-circuit like is currently implemented by checking vte_terminal_get_enable_a11y() to avoid any sort of contents calculation when there are no a11y observers. It also allows disabling the GTK 3 a11y implementation just to keep some symmetry between the APIs. Currently, this does not implement "text-scrolled" like the GTK 3 implementation does as I'm not sure yet if there is a benefit. Fixes: #2753
c8d7967f