Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[a11y] ATK assertion failure when screen reader is enabled #8

Open
swift-kim opened this issue Apr 25, 2022 · 1 comment
Open

[a11y] ATK assertion failure when screen reader is enabled #8

swift-kim opened this issue Apr 25, 2022 · 1 comment
Labels
bug Something isn't working

Comments

@swift-kim
Copy link
Member

swift-kim commented Apr 25, 2022

I see a lot of these error messages when running the Gallery app and moving widget focus on TV. Is this related to the recently added screen reader support?

E/ConsoleMessage(14825): ** (Runner.dll:14825): CRITICAL **: 14:41:58.122: gboolean ui::(anonymous namespace)::atk_action::DoAction(AtkAction *, gint): assertion '!index' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): ** (Runner.dll:14825): CRITICAL **: 14:42:04.997: gboolean ui::(anonymous namespace)::atk_action::DoAction(AtkAction *, gint): assertion '!index' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): ** (Runner.dll:14825): CRITICAL **: 14:42:05.677: gboolean ui::(anonymous namespace)::atk_action::DoAction(AtkAction *, gint): assertion '!index' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): ** (Runner.dll:14825): CRITICAL **: 14:42:06.067: gboolean ui::(anonymous namespace)::atk_action::DoAction(AtkAction *, gint): assertion '!index' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): ** (Runner.dll:14825): CRITICAL **: 14:42:07.470: gboolean ui::(anonymous namespace)::atk_action::DoAction(AtkAction *, gint): assertion '!index' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): (Runner.dll:14825): Atk-CRITICAL **: 14:42:10.939: atk_text_get_character_count: assertion 'ATK_IS_TEXT (text)' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): (Runner.dll:14825): Atk-CRITICAL **: 14:42:10.956: atk_text_get_text: assertion 'ATK_IS_TEXT (text)' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): ** (Runner.dll:14825): CRITICAL **: 14:42:19.624: gboolean ui::(anonymous namespace)::atk_action::DoAction(AtkAction *, gint): assertion '!index' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): ** (Runner.dll:14825): CRITICAL **: 14:42:24.898: gboolean ui::(anonymous namespace)::atk_action::DoAction(AtkAction *, gint): assertion '!index' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): ** (Runner.dll:14825): CRITICAL **: 14:42:29.633: gboolean ui::(anonymous namespace)::atk_action::DoAction(AtkAction *, gint): assertion '!index' failed
E/ConsoleMessage(14825):
E/ConsoleMessage(14825): ** (Runner.dll:14825): CRITICAL **: 14:42:35.436: gboolean ui::(anonymous namespace)::atk_action::DoAction(AtkAction *, gint): assertion '!index' failed

TV image:

PRETTY_NAME="Tizen 6.5.0 (Tizen6/TV)"
BUILD_ID=T-NKLBAKUC-202111140101

cc @wanchao-xu

@swift-kim swift-kim added the bug Something isn't working label Apr 26, 2022
@swift-kim swift-kim transferred this issue from flutter-tizen/engine Nov 22, 2022
@swift-kim swift-kim changed the title ATK assertion failure on TV [a11y] ATK assertion failure when screen reader is enabled Feb 3, 2023
@swift-kim
Copy link
Member Author

The issue is reproducible not only on TV devices but also on RPi devices.

The problem is that the value of the index argument of atk_action::DoAction is expected to be 0 or greater but the value passed from libatk-bridge is actually -1. The call stack is as follows.

(lldb) bt
* thread #1, name = 'Runner.dll', stop reason = breakpoint 1.1
  * frame #0: 0x0000007ed86d7be4 libflutter_tizen.so`ui::(anonymous namespace)::atk_action::DoAction(atk_action=0x00000055632914d0, index=-1)
    frame #1: 0x0000007ed838e9c0 libatk-bridge-2.0.so.0`impl_DoActionName(bus=<unavailable>, message=<unavailable>, user_data=0x00000055632914d0) at action-adaptor.c:267:3
    frame #2: 0x0000007ed839a914 libatk-bridge-2.0.so.0`handle_message at droute.c:554:21
    frame #3: 0x0000007ed839a8d0 libatk-bridge-2.0.so.0`handle_message(bus=0x0000005563261920, message=0x0000005563260a90, user_data=0x0000005563264120) at droute.c:601
    frame #4: 0x0000007edb402c30 libdbus-1.so.3`___lldb_unnamed_symbol248$$libdbus-1.so.3 + 416
    frame #5: 0x0000007edb3f22e8 libdbus-1.so.3`dbus_connection_dispatch + 1048
    frame #6: 0x0000007ed82455e0 libatspi.so.0`___lldb_unnamed_symbol93$$libatspi.so.0 + 32
    frame #7: 0x0000007f885bc274 libglib-2.0.so.0`g_main_context_dispatch + 628
    frame #8: 0x0000007f881df828 libecore.so.1`___lldb_unnamed_symbol72$$libecore.so.1 + 1224
    frame #9: 0x0000007f881e1ea0 libecore.so.1`___lldb_unnamed_symbol97$$libecore.so.1 + 1440
    frame #10: 0x0000007f881e2554 libecore.so.1`___lldb_unnamed_symbol99$$libecore.so.1 + 436
    frame #11: 0x0000007f881e2c40 libecore.so.1`___lldb_unnamed_symbol102$$libecore.so.1 + 256
    frame #12: 0x0000007f881e7e28 libecore.so.1`___lldb_unnamed_symbol173$$libecore.so.1 + 24
    frame #13: 0x0000007f881e6f4c libecore.so.1`efl_loop_begin + 140
    frame #14: 0x0000007f881e1504 libecore.so.1`ecore_main_loop_begin + 100
    frame #15: 0x0000007f8798b684 libapp-core-cpp.so.1`tizen_cpp::AppCoreBase::Run(int, char**) + 20
    frame #16: 0x0000007f80040750 libapp-core-ui-cpp.so.1`tizen_cpp::AppCoreUiBase::DoRun(int, char**) + 464
    frame #17: 0x0000007f80040b6c libapp-core-ui-cpp.so.1`tizen_cpp::AppCoreUiBase::Impl::Run(int, char**) + 476
    frame #18: 0x0000007f80078f98 libcapi-appfw-application.so.0`ui_app_main + 584

I examined runtime values of some variables in the impl_DoActionName function and figured out that the value of name is "activate" while the value of action_name is "ReadingStopped" (the count is 1). As a result, index stays unchanged from its initial value (-1) and then is passed to atk_action_do_action.

I'm not familiar with the libatk-bridge code so I don't know which exact part needs a fix. Could anybody help? @flutter-tizen/maintainers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant