Skip to content

Commit

Permalink
[Linux][A11y] implement AtkEditableText interface (flutter#33955)
Browse files Browse the repository at this point in the history
* Make FlAccessibleNode derivable

This allows introducing specialized subclasses that implement such a11y
interfaces as AtkEditableText that should not be implemented for the
generic node.

* FlAccessibleNode: add set value, text selection & perform action

Prepare API required for the upcoming AtkEditableText implementation.

* FlViewAccessible: postpone child node creation

This changes the a11y node creation flow so that (unknown) child nodes
are not pre-created when their parent is updated but "pending" child
node IDs are collected for later. Parent-child relationships are
established at the end of update batches when all nodes have been
created.

* Add FlAccessibleTextField that implements AtkEditableText

Solves: flutter/flutter#103191
  • Loading branch information
jpnurmi authored Jun 26, 2022
1 parent 00b7292 commit 5ca80bd
Show file tree
Hide file tree
Showing 10 changed files with 1,360 additions and 136 deletions.
3 changes: 3 additions & 0 deletions ci/licenses_golden/licenses_flutter
Original file line number Diff line number Diff line change
Expand Up @@ -2133,6 +2133,9 @@ FILE: ../../../flutter/shell/platform/linux/fl_accessibility_plugin.h
FILE: ../../../flutter/shell/platform/linux/fl_accessible_node.cc
FILE: ../../../flutter/shell/platform/linux/fl_accessible_node.h
FILE: ../../../flutter/shell/platform/linux/fl_accessible_node_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field.cc
FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field.h
FILE: ../../../flutter/shell/platform/linux/fl_accessible_text_field_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_backing_store_provider.cc
FILE: ../../../flutter/shell/platform/linux/fl_backing_store_provider.h
FILE: ../../../flutter/shell/platform/linux/fl_basic_message_channel.cc
Expand Down
2 changes: 2 additions & 0 deletions shell/platform/linux/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ source_set("flutter_linux_sources") {
sources = [
"fl_accessibility_plugin.cc",
"fl_accessible_node.cc",
"fl_accessible_text_field.cc",
"fl_backing_store_provider.cc",
"fl_basic_message_channel.cc",
"fl_binary_codec.cc",
Expand Down Expand Up @@ -192,6 +193,7 @@ executable("flutter_linux_unittests") {

sources = [
"fl_accessible_node_test.cc",
"fl_accessible_text_field_test.cc",
"fl_basic_message_channel_test.cc",
"fl_binary_codec_test.cc",
"fl_binary_messenger_test.cc",
Expand Down
Loading

0 comments on commit 5ca80bd

Please sign in to comment.