Summary:
Now when we are simulating device running in VoiceOver mode while showing accessiblity hierarchy in flipper, we are getting correct hierarchy + getting production-like custom actions,
Instagram + Facebook feed is a good example of using accessiblity actions to avoid exposing individual buttons
Reviewed By: lblasa
Differential Revision: D49641875
fbshipit-source-id: 1153ec3bffc7110c4bfe702cbb5a6b729d91b9a3
Summary:
All the FoA have different logic depending on whether device is running in VoiceOver mode or not. This results in incorrect accessibility being reported through the Flipper plugin.
For example on Instagram we fetch the image descriptions, in Facebook app we group individual elements into the accessibility groups to simplify traversing the screen
This tells device that it is in a voice over mode while inspecting accessibility mode is on meaning that it will be the closest approximation to the
Reviewed By: nscoding
Differential Revision: D49579241
fbshipit-source-id: f3be9057007ee6eefbe3b448f0f97c1fcd2c8f46
Summary:
It looks like there are some edge cases when app did not load private accessibility framework (probably if it never set any accessibility values?)
This diff makes calls to accessibility hierarchy safer and ensures to preload framework if available
Reviewed By: lblasa
Differential Revision: D49501064
fbshipit-source-id: b46216b58bf6c9c63f900e199fea035e3262afb2
Summary: In this diff we load and call a private API enabling voiceover hierarchy and pass it over via existing channel when client is in the accessibility mode
Reviewed By: lblasa
Differential Revision: D49393813
fbshipit-source-id: 437af1131547218cd52f4a56797707411787d7cf
Summary:
Make sure mobile client and sonar desktop app keep debugger mode in sync
Desktop client listens to available modes and currently selected mode which is what we use here.
Later we can tweak the logic to try to restore last mode if desktop or mobile clients crash / disconnect etc
Reviewed By: lblasa
Differential Revision: D49384358
fbshipit-source-id: 5bc1f4240253b68a746dfa5feba4b352f4e261a2
Summary:
Add a connection listener similarly to the one used on Android.
The usage at this point will come from framework events as a means to control when to capture the events or not.
Reviewed By: ivanmisuno
Differential Revision: D49092691
fbshipit-source-id: d004f7ff5d1a254ad5f9c7f207d485afcb7ac54a
Summary:
UI Debugger initialisation is defined in two places. Internally, done inside:
fb/FlipperKitUIDebuggerPluginInit.mm
OSS:
FlipperKitUIDebuggerPluginInit.mm
Contents of `fb/` directory are not synced in OSS. OSS file is excluded internally as it doesn't use the XPlugins.
Reviewed By: aigoncharov
Differential Revision: D47759035
fbshipit-source-id: 3578be076525f05b530a0d129b5c37e48572d58e
Summary:
Use the application key window bounds if possible.
In the case where the application is not using the entire screen,
like in Split View on an iPad, the running application is
not using the entire screen thus the snapshot stretches to
fill the screen size which is incorrect.
Reviewed By: LukeDefeo
Differential Revision: D47793033
fbshipit-source-id: d6c7932d35bad13752713772d078f94bad530b09