platform/core/accessibility/screen-reader.git
8 months agoMerge "Add support for increase,decrease action when value text is set" into tizen_8.0 accepted/tizen_8.0_unified tizen_8.0 accepted/tizen/8.0/unified/20240924.162420
Youngsun Suh [Mon, 23 Sep 2024 01:56:02 +0000 (01:56 +0000)]
Merge "Add support for increase,decrease action when value text is set" into tizen_8.0

8 months agoMerge "Unify switching navigation context on TAP and on ATSPI event" into tizen_8.0
Youngsun Suh [Mon, 23 Sep 2024 01:55:49 +0000 (01:55 +0000)]
Merge "Unify switching navigation context on TAP and on ATSPI event" into tizen_8.0

8 months agoMerge "Make focus navigatable between windows." into tizen_8.0
Youngsun Suh [Mon, 23 Sep 2024 01:55:40 +0000 (01:55 +0000)]
Merge "Make focus navigatable between windows." into tizen_8.0

9 months agoMerge "In multi-window model window should be removed from cache only when destroyed...
Youngsun Suh [Fri, 13 Sep 2024 08:00:48 +0000 (08:00 +0000)]
Merge "In multi-window model window should be removed from cache only when destroyed" into tizen_8.0

9 months agoAdd support for increase,decrease action when value text is set 82/316982/1
Youngsun Suh [Fri, 16 Aug 2024 00:00:31 +0000 (09:00 +0900)]
Add support for increase,decrease action when value text is set

Change-Id: I57d7dd80654e559f47b8951802b7df211b3cd247
(cherry picked from commit 2829bf8356d8b5940477d11fcebe6c0ce1a434b4)

10 months agoAdd symbol support in direct reading 77/315277/1 accepted/tizen/8.0/unified/20240730.132327
Łukasz Oleksak [Mon, 29 Jul 2024 08:12:32 +0000 (10:12 +0200)]
Add symbol support in direct reading

Change-Id: I309f657d2a3a527d3eb95b136ce3000074479e4e
(cherry picked from commit a81d7e839cce52f0913b832d97f48282abdaac1d)

11 months ago[Tizen] Supports the migration script for OS upgrade 50/314050/1 accepted/tizen/8.0/unified/20240708.173725
Wonsik Jung [Thu, 4 Jul 2024 07:52:54 +0000 (16:52 +0900)]
[Tizen] Supports the migration script for OS upgrade

Supports the migration script for OS upgrade in Tizen TV.

Change-Id: I728a87346bd6fa7fa8acf17d1330b040d0ea4342

12 months agoapp_tracker: fixed memory management in _on_atspi_event_cb 86/311686/1 accepted/tizen/8.0/unified/20240530.161331
Maria Bialota [Thu, 23 May 2024 10:43:46 +0000 (12:43 +0200)]
app_tracker: fixed memory management in _on_atspi_event_cb

Change-Id: Ia908eb4cdcc1ee5d60e641ac6925ed539566eb4e
(cherry picked from commit 112bd50320e0f1b010f635d8efcedc018766f6c4)

12 months agoUse RadioButton role translation 83/311683/1
Artur Świgoń [Thu, 23 May 2024 11:22:31 +0000 (13:22 +0200)]
Use RadioButton role translation

Change-Id: I4b2bdba18b5d5beab02d4afce7c7d5577be515d8
(cherry picked from commit f1a0e65e40922a2cd11e20629f2aeb87543df93d)

12 months agoUnify switching navigation context on TAP and on ATSPI event 09/311509/1
Lukasz Oleksak [Thu, 16 May 2024 12:49:10 +0000 (14:49 +0200)]
Unify switching navigation context on TAP and on ATSPI event

Change-Id: I40b5060823b5622356dc2e4236644826103183bc

12 months agoMake focus navigatable between windows. 08/311508/1
Youngsun Suh [Fri, 3 May 2024 01:44:28 +0000 (10:44 +0900)]
Make focus navigatable between windows.

Change-Id: Iafe27b170f4bb195c6e24b93ed8f3fadc9b4ab0e

12 months agoIn multi-window model window should be removed from cache only when destroyed 07/311507/1
Lukasz Oleksak [Fri, 10 May 2024 07:57:11 +0000 (09:57 +0200)]
In multi-window model window should be removed from cache only when destroyed

Change-Id: I4ec493c8f436c3db547e4d4b2a52f45471727176

12 months agoChange volume type of feedback. 26/311226/1
Hosang Kim [Thu, 16 May 2024 07:16:52 +0000 (16:16 +0900)]
Change volume type of feedback.

TTS using 'system' volume type, so changing sound feedback's volume type
to 'system'.

Change-Id: Ifb58aa300c27f0491b785f1933f8d2d8a44dae25
(cherry picked from commit 65410b938002578b694ce32bfa35f5d8ba347fa0)

15 months agoNull-check app_get_resource_path() 08/307708/1 accepted/tizen/8.0/unified/20240314.151242
Artur Świgoń [Tue, 12 Mar 2024 09:07:01 +0000 (10:07 +0100)]
Null-check app_get_resource_path()

The return value is passed as the first argument to g_strconcat(), which
expects a NULL-terminated argument list, but its documentation
explicitly states that the first argument must be non-NULL.

Change-Id: I2bfab7540fd0e717007399ed5e41fece644979e0
(cherry picked from commit c71069943dc61d7332eefbca6a0b2d0fb8b53074)

15 months agoFix string length type as size_t 48/307148/1
Artur Świgoń [Tue, 5 Mar 2024 09:26:24 +0000 (10:26 +0100)]
Fix string length type as size_t

Change-Id: I77cc57d560ff8ac61a3a6bfa1e67efbed6850d09
(cherry picked from commit 0432aa335f44a271b053916e3840d28edc95fc1f)

15 months agoSetting null context when screen is off 26/306726/1 accepted/tizen/8.0/unified/20240227.172317
Maria Bialota [Mon, 26 Feb 2024 13:14:15 +0000 (14:14 +0100)]
Setting null context when screen is off

Change-Id: Ibe6605a572e809427e15516b6e824e7abf2cec8e

15 months agoStop sending HighlightedObjectInfo in null context mode 25/306725/1
Artur Świgoń [Thu, 9 Feb 2023 11:01:11 +0000 (12:01 +0100)]
Stop sending HighlightedObjectInfo in null context mode

When control is handed over to a non-atspi application (e.g. DALi on Tizen
6.0), the highlight stays on the old application (non-atspi apps are opaque
to Screen Reader and they use their own highlight). This may cause the old
app to keep sending org.tizen.GestureNavigation.HighlightedObjectInfo D-Bus
messages (in parallel to the non-atspi app, causing a race condition), which
in turn may cause the double-tap-and-hold gesture information to be sent
with wrong coordinates.

Change-Id: I5129dd5bc49edcaab29e8e76ccf1e5cd177fb306

15 months agoapp_tracker: Fix to null context handling 24/306724/1
Maria Bialota [Thu, 3 Nov 2022 16:28:32 +0000 (17:28 +0100)]
app_tracker: Fix to null context handling

App tracker root should set to null when switching to null context

Change-Id: I61f617c87b934b203148ac01197f801d2bdcb870

15 months agoDo not try to consume gestures in null context mode 23/306723/1
Artur Świgoń [Thu, 6 Oct 2022 09:06:37 +0000 (11:06 +0200)]
Do not try to consume gestures in null context mode

Screen Reader tries to perform the gesture on the special null context object
(currently, the desktop). The DoGesture call in such a case will always fail
(and count as not consumed), so there is no need to even attempt it.

Change-Id: I59f62b7dcb2235852a6960099091976ae79865e8

15 months agoSupport null context 22/306722/1
Artur Świgoń [Fri, 23 Sep 2022 10:47:50 +0000 (12:47 +0200)]
Support null context

Null context allows the Screen Reader to yield control to applications
whose existence it is not aware of, like ones using unknown toolkits.
The null context is not actually a NULL pointer, but a special desktop
object, because the code expects a non-NULL pointer in so many places.

Change-Id: I41901899a84315cc92507c09e8471195b721ede3

15 months agoCheck display state before rebuild navigation context. 21/306721/1
Hosang Kim [Mon, 26 Feb 2024 04:33:31 +0000 (13:33 +0900)]
Check display state before rebuild navigation context.

After screen off, there's still a sound of context switching.

Change-Id: I4f0b8540fa0e678e8323d27220b93b541554fc6e

15 months agoMake notification reading nondiscardable 25/306525/1
Lukasz Oleksak [Tue, 20 Feb 2024 15:58:13 +0000 (16:58 +0100)]
Make notification reading nondiscardable

Change-Id: Ic3fa3d1130dab64fa1a85e960bd2be3b3be1c2c2
(cherry picked from commit 145157e5e4cefd19fbd1fbb645e2635b87111929)

15 months agoscreen_reader: check NULL when g_object_ref/unref are called. 19/306519/1
Hosang Kim [Wed, 21 Feb 2024 09:22:44 +0000 (18:22 +0900)]
screen_reader: check NULL when g_object_ref/unref are called.

Sometimes g_boject_ref/unref are called with NULL object.

Change-Id: Ia9ca8b341fc78a9481f201f29d936bdb15100b07

15 months agoMake granularity feature optional 89/305989/1 accepted/tizen/8.0/unified/20240219.160551
Lukasz Oleksak [Wed, 7 Feb 2024 15:20:45 +0000 (16:20 +0100)]
Make granularity feature optional

Change-Id: If358afacbdc427440201c3316503ccfae6749fa2
(cherry picked from commit 736656042decb72d49a708b6041ed679fc2d9c67)

16 months agoFix handling boolean VConf keys 33/305833/1 accepted/tizen/8.0/unified/20240213.170447
Artur Świgoń [Thu, 8 Feb 2024 11:56:15 +0000 (12:56 +0100)]
Fix handling boolean VConf keys

Types 'bool' and 'int' are distinct in VConf, so boolean keys cannot be read
with vconf_get_int() etc. This patch adds the necessary APIs for 'bool',
alongside 'int' and 'str'.

Change-Id: Ib9b8db0848e6918a1f0bf880f32bf7cae7baf2bb

16 months agoRevert "Handle Quickpanel" 99/305399/1 accepted/tizen/8.0/unified/20240206.160319
Seoyeon Kim [Tue, 30 Jan 2024 07:04:47 +0000 (16:04 +0900)]
Revert "Handle Quickpanel"

This reverts commit 31f35ad8364e85f0c04d1a07060dfe762665f2b6.

- Remove the legacy code because DALi app started to support AT-SPI
 from Tizen 7.0.
- Now, screen reader can handle the gestrue even on DALi apps.

Change-Id: Ie18ae6613022e891cb1d083ae19f63c100713638

16 months agowindow_tracker: Keep the D-Bus filter minimal 69/305269/1 accepted/tizen/8.0/unified/20240202.165934
Artur Świgoń [Tue, 30 Jan 2024 11:19:15 +0000 (12:19 +0100)]
window_tracker: Keep the D-Bus filter minimal

Do not re-enter D-Bus from inside the D-Bus filter.

Change-Id: Ib8f0757e295c0f7eb79dbce7e8cf930fbd43099c

16 months agoAdd -fno-omit-frame-pointer 76/304776/2 accepted/tizen/8.0/unified/20240124.161346
Artur Świgoń [Mon, 22 Jan 2024 09:41:18 +0000 (10:41 +0100)]
Add -fno-omit-frame-pointer

This option has a negligible performance impact but it gives an
opportunity to produce more meaningful stacktraces.

Change-Id: I2f1fbce233dc60c3c9db20c5254f78ab3d237c6d

17 months agoRemember the last touch position for HighlightedObjectInfo 75/303775/1
Artur Świgoń [Thu, 4 Jan 2024 15:12:08 +0000 (16:12 +0100)]
Remember the last touch position for HighlightedObjectInfo

The previous calculation method was to always use the center point of a given
actor, regardless of the position of the touch event that caused it to be
focused. In the tricky scenario where a smaller actor is overlaid on top of a
bigger actor such that the smaller actor covers the center of the bigger actor,
a double-tap-and-hold gesture meant to activate the bigger actor would activate
the smaller actor instead.

The calculation method introduced by this patch is a little bit better, but
still not ideal. However, the HighlightedObjectInfo D-Bus method has only two
parameters, the coordinates, which are then routed back into the app as a touch
event, so there isn't much more that could be done to address this issue.

The logic is ported from: https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-toolkit/+/288516/

Change-Id: Ia99d48bf1f952975cf55e79f5973fb45de5a306e

18 months agoMerge "[TV] make the handler of state-changed:checked event aware of live-region... accepted/tizen/8.0/unified/20231123.173031
Lukasz Oleksak [Wed, 22 Nov 2023 09:40:09 +0000 (09:40 +0000)]
Merge "[TV] make the handler of state-changed:checked event aware of live-region politeness" into tizen_8.0

18 months ago[TV] make the handler of state-changed:checked event aware of live-region politeness 27/301727/1
Lukasz Oleksak [Thu, 12 Oct 2023 14:57:39 +0000 (16:57 +0200)]
[TV] make the handler of state-changed:checked event aware of live-region politeness

Change-Id: Ia045ddf5c80662b84db1b3dbce8be97df9f364b8
(cherry picked from commit 7545ac95eb88cd83e4872bb2c2869c1a6fe3ba03)

18 months agoUnification of accessible name composition 26/301726/1
Lukasz Oleksak [Tue, 10 Oct 2023 13:39:33 +0000 (15:39 +0200)]
Unification of accessible name composition

Change-Id: I679ef1f8b8f406e6ecccf84bfda167be8d8c1010
(cherry picked from commit 243fe8cb67761e4b2bd8009c7c8e1e1667715d0a)

18 months agoFix memory management issues 70/301470/1
Artur Świgoń [Thu, 9 Nov 2023 15:41:42 +0000 (16:41 +0100)]
Fix memory management issues

Change-Id: Ic276eb376e9d5246c3f366c6c57449e47cfce840
(cherry picked from commit 81e356db333cae2df1b632a3bde9b7c818ec6144)

22 months ago[TV] Enable reading on accessible-name change of focused object 23/296323/1 accepted/tizen/8.0/unified/20231005.092545 accepted/tizen/unified/20230727.173050 tizen_8.0_m2_release
Lukasz Oleksak [Tue, 25 Jul 2023 13:51:16 +0000 (15:51 +0200)]
[TV] Enable reading on accessible-name change of focused object

Change-Id: I300061fe1e66ac2e656e71e30616bd26394b5b04

22 months agoCorrect AtspiTable usage 03/296203/1 accepted/tizen/unified/20230725.013004
Artur Świgoń [Fri, 21 Jul 2023 12:14:36 +0000 (14:14 +0200)]
Correct AtspiTable usage

Somewhat confusingly, atspi_table_cell_get_table() returns an
AtspiAccessible, not an AtspiTable. The AtspiAccessible can be
then passed to atspi_accessible_get_table_iface() to obtain an
AtspiTable. Also, due to the increased complexity, use `goto`
to clean up all objects at the end.

Change-Id: I912d6b1fc252a52c0d7c9f29c9376d3f036634a1

22 months agoAdd missing #include directives 98/296198/1
Artur Świgoń [Fri, 21 Jul 2023 11:56:37 +0000 (13:56 +0200)]
Add missing #include directives

This fixes the following warnings due to undeclared functions:

src/screen_reader_spi.c:183:6: warning: implicit declaration of function 'isupper' [-Wimplicit-function-declaration]

src/screen_reader_spi.c:185:24: warning: implicit declaration of function 'symbol_lookup' [-Wimplicit-function-declaration]

src/screen_reader_spi.c:185:22: warning: assignment to 'const gchar *' {aka 'const char *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]

src/screen_reader_spi.c:236:23: warning: assignment to 'const gchar *' {aka 'const char *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]

Change-Id: Ib403fd0ae7cc27861e651777e6ef639e56d1bcbb

22 months agoFix checking integer values by pointer 96/296196/1
Artur Świgoń [Fri, 21 Jul 2023 11:26:26 +0000 (13:26 +0200)]
Fix checking integer values by pointer

Change-Id: Iece746f0cce647510791e31f5ca446f0266c6eb0

23 months agoAdd reading of table cell position (row, column) 38/293438/10 accepted/tizen/unified/20230703.093331
Lukasz Oleksak [Fri, 26 May 2023 12:01:30 +0000 (14:01 +0200)]
Add reading of table cell position (row, column)

This patch adds reading of currently highlighted cell position in table
depending on position of previously highlighted cell. Following rules
apply inclusively:

* announce row if:
    * table has changed (highlight moves from one table to another)
    * row has changed (highlight moves from one row to another row)
    * table cell has not changed (repeated highlight on the same cell)

* announce column if:
    * table has changed (highlight moves from one table to another)
    * column has changed (highlight moves from one column to another column)
    * table cell has not changed (repeated highlight on the same cell)

Also, reading of the currently highlighted cell position in table may be
extended with optional reading of the characteristic of entire table
(table caption and total number of rows and columns).

Presence of this optional reading is controlled by vconf key:

    "db/setting/accessibility/screen_reader/list_grid_information"

The same rules of announcing row and column apply to announcing total rows
and total columns.

Dependency:
https://review.tizen.org/gerrit/#/c/platform/upstream/at-spi2-core/+/293439/

Change-Id: I167c581a942a2416b51f3a52c146a739993a49bd

2 years agoForce assertive politeness policy for highlighted/focused object 43/293343/1 accepted/tizen/unified/20230613.170821
Lukasz Oleksak [Wed, 24 May 2023 15:08:32 +0000 (17:08 +0200)]
Force assertive politeness policy for highlighted/focused object

Change-Id: I1d15b32a2eeb5e12d7bec30a16e00ec6f24c74b7

2 years agoAdd reading of usage hint for Slider and SpinButton 73/293273/2
Lukasz Oleksak [Tue, 23 May 2023 10:16:55 +0000 (12:16 +0200)]
Add reading of usage hint for Slider and SpinButton

Change-Id: I87d7f7b1324d8122cffad8182c5ffb64b063860d

2 years agoEnable reading of value carried by object with ATSPI_ROLE_SPIN_BUTTON as object's... 08/293108/1
Lukasz Oleksak [Fri, 19 May 2023 15:41:10 +0000 (17:41 +0200)]
Enable reading of value carried by object with ATSPI_ROLE_SPIN_BUTTON as object's state

Change-Id: I2465f23b296db00719127606777bcdbe43e26aec

2 years agoUnification of handling value-change event 57/292957/5
Lukasz Oleksak [Wed, 17 May 2023 15:47:16 +0000 (17:47 +0200)]
Unification of handling value-change event

This patch changes:

* now in all cases when text to read is composed for value-change reading request
  an reading info type customization for STATE reading is taken into consideration;
  previously it was inconsistent
* now TV and Mobile versions use the same logic for handling value-change
  reading request (except for the difference in testing if event's source object
  is currently tracked object, for mobile HIGHLIGHTED state is checked since for TV
  FOCUSED state is checked)
* limitation of handling value-change reading requests in mobile version
  to role SLIDER and FILLER was removed, thans to that chage of page in pagination
  UI control can be anounced by screen reader
* reading an accessible name for FILLER case was removed; since new general
  mechanism for providing textual representation of current value is available
  it should be used (see: https://review.tizen.org/gerrit/#/c/platform/core/accessibility/screen-reader/+/291276/)

Change-Id: I1a809f78332fc155474ee0fe82e83f74ccf9076a

2 years ago[TV] Apply live region politeness attribute when handling value-changed event 37/292637/4
Lukasz Oleksak [Wed, 10 May 2023 10:18:43 +0000 (12:18 +0200)]
[TV] Apply live region politeness attribute when handling value-changed event

This patch:

* extends applicability of "container-live" ATSPI attribute
  (mapped from WAI-ARIA "aria-live") to case of handling value-change event

* changes default value of live region politeness attribute from "assertive"
  to "off" for text-changed and value-changed events emitted from
  not currently focused UI element

Change-Id: Iff20c8f9855cd19c5b00e59c1319253a15a1971d

2 years agoFix memory leak issue 58/292158/2 accepted/tizen/unified/20230528.171011
Seoyeon Kim [Fri, 28 Apr 2023 05:32:13 +0000 (14:32 +0900)]
Fix memory leak issue

- Add `wav_path` null check

Change-Id: I2ccf5fd7924130afb735dbfce7b1c456889410f6
Signed-off-by: Seoyeon Kim <seoyeon2.kim@samsung.com>
2 years agoFix memory leak 23/292123/1 accepted/tizen/unified/20230428.155122
Lukasz Oleksak [Thu, 27 Apr 2023 09:50:10 +0000 (11:50 +0200)]
Fix memory leak

Change-Id: I39edc1a78dd60b38c6dedd1c30824dd4a8bddb59

2 years agoFix potential null pointer dereference 36/291936/1 accepted/tizen/unified/20230425.175900
Lukasz Oleksak [Tue, 25 Apr 2023 08:05:42 +0000 (10:05 +0200)]
Fix potential null pointer dereference

Change-Id: I4198ee8622eabedeeaedff53dc57d218f10d8441

2 years agoImprove reading on text-changed and caret-moved events in TV version 02/291702/10
Lukasz Oleksak [Thu, 20 Apr 2023 10:32:44 +0000 (12:32 +0200)]
Improve reading on text-changed and caret-moved events in TV version

This patch introduces following features while handling text-changed and
caret-moved events:

* announce capital letters (e.g read "Capital C" for input text "C")
* announce symbols (e.g read "space" for input text " ")
* prevent reveal fragments or whole of the password text

Change-Id: I17e107c2f1adabf7c5bae734d0d580ac20e19776

2 years agoCustomization of value reading 76/291276/3 accepted/tizen/unified/20230421.103349
Lukasz Oleksak [Wed, 12 Apr 2023 15:08:40 +0000 (17:08 +0200)]
Customization of value reading

Change-Id: Ic89b14e514c4aea088da1a2e22698d0a2489087f

2 years agoUse customized tts voice properties with priority over default platform settings 14/290614/16
Lukasz Oleksak [Wed, 29 Mar 2023 10:50:33 +0000 (12:50 +0200)]
Use customized tts voice properties with priority over default platform settings

This change allows to controll following tts voice properties for reading
requests originated by screen-reader:

* language (NULL-auto, ANSI code of locale for supported language "ko_KR")
* voice type (0-auto, 1-male, 2-female, 3-child)
* speed (0-auto, 1-slow, ... , 15-fast)

Customized values are passed to screen-reader through vconf keys:

"db/setting/accessibility/screen_reader/tts_voice"
"db/setting/accessibility/screen_reader/tts_speed"

Note:

tts_voice key should contain ":" separated string concatenating language
and voice type like "ko_KR:2"

two above keys should be registered as internal vconf keys on the platform

Change-Id: I1de9f14228dffbcec85fcf584abc6d4cedd3057e

2 years agoDisable default label when old context root object became new context current object 05/286905/2 accepted/tizen/unified/20230127.161116
Lukasz Oleksak [Mon, 16 Jan 2023 11:47:34 +0000 (12:47 +0100)]
Disable default label when old context root object became new context current object

Change-Id: I8852a8c53181039b8a2c4a3be1a2373cfcdd0b14

2 years agoflat_navi: Support returning directly to the old root 45/286845/1
Artur Świgoń [Fri, 13 Jan 2023 12:42:57 +0000 (13:42 +0100)]
flat_navi: Support returning directly to the old root

This functionality can be used with drop-down lists, where after dismissing
the list, navigation should resume at the drop-down button.

Change-Id: I067c6a5501e14ea1d46c3d1ab1f30fb1c355450f

2 years agoflat_navi: Handle focus chain end in drop-down menu 64/286764/3
Artur Świgoń [Thu, 12 Jan 2023 11:07:28 +0000 (12:07 +0100)]
flat_navi: Handle focus chain end in drop-down menu

This patch tries to detect the focus chain end scenario in a drop-down menu and
close the menu, before falling back to the default looping behaviour.

Change-Id: I0f9fb34825954349b6644a83e1c58e74ed3a3905

2 years agoSome optimizations to spi_event_get_text_to_read() 55/286555/1 accepted/tizen/unified/20230110.164135
Artur Świgoń [Mon, 9 Jan 2023 15:43:06 +0000 (16:43 +0100)]
Some optimizations to spi_event_get_text_to_read()

These were originally included in the now-reverted patch
"Check active window in spi_event_get_text_to_read()"
(Ic0a65ed5cc77fb232eba1f50c66379c186ec4bd9).

Change-Id: I96ca0a19fed1ec2906699f72a5530ee5e48ef9c1

2 years agoRevert "Check active window in spi_event_get_text_to_read()" 54/286554/1
Artur Świgoń [Mon, 9 Jan 2023 15:31:04 +0000 (16:31 +0100)]
Revert "Check active window in spi_event_get_text_to_read()"

This reverts commit 5b9831e9abc2546204fa5a941603fc6efb9f566f.

Change-Id: I279b77399c3ac582bbd52ea38a1e023d68b1dd56

2 years agoRevert "Extended check for being active window object" 53/286553/1
Artur Świgoń [Mon, 9 Jan 2023 15:31:02 +0000 (16:31 +0100)]
Revert "Extended check for being active window object"

This reverts commit 27ad6f0016c19962614b061c0af3aebc1aaec0d8.

Change-Id: Ib3ae2a4baa730aab3596aa15e918a0d0c81e1564

2 years agoMove _window_extents_get() to utils 43/285943/5 accepted/tizen/unified/20221227.170636
Artur Świgoń [Thu, 22 Dec 2022 15:35:05 +0000 (16:35 +0100)]
Move _window_extents_get() to utils

There are a few usages of atspi_accessible_get_component_iface() and
atspi_component_get_extents(), followed by error checking and freeing the
resources, that can all be replaced by a call to object_get_extents()
(previously known as _window_extents_get()).

Change-Id: I38952ccf5868e3e99fc1b9227c3772e5c2c382ee

2 years agoPerform synchronization of local cache of window information also on window:destroy... 35/274435/3
Lukasz Oleksak [Thu, 28 Apr 2022 08:32:05 +0000 (10:32 +0200)]
Perform synchronization of local cache of window information also on window:destroy event

Change-Id: I315a230ec28465763143e6238d89b497218ff495

2 years agoDo not cache window extents 62/285862/8
Lukasz Oleksak [Wed, 21 Dec 2022 13:28:31 +0000 (14:28 +0100)]
Do not cache window extents

Because:
a) in multi-window model window geometry may change so we need fresh one
b) so far extents were used to identify window at point x,y but we change to
   resource_id for the purpose of window identification

Change-Id: I32fdf6aa5f4c5c2a4e27660754f0ba5945e0bb1b

2 years agoRemove signal handling code 55/285755/4 accepted/tizen/unified/20221221.165307
Artur Świgoń [Mon, 19 Dec 2022 17:30:59 +0000 (18:30 +0100)]
Remove signal handling code

The signal handler was problematic because it called non-signal-safe
functions (including stdio functions and backtrace_symbols() which calls
dynamic loader functions), causing undefined behaviour.

After removing the problematic functionality all that remained was a
signal handler that terminates the process with an error status code,
which is essentially equivalent to having no signal handler at all, so
all signal-related functionality was removed altogether.

--
https://man7.org/linux/man-pages/man7/signal-safety.7.html

Change-Id: Id669ba998cdb9f11e1c2443a79e8d8afb58beb75

2 years agoExtended check for being active window object 25/285425/4
Lukasz Oleksak [Mon, 12 Dec 2022 11:32:11 +0000 (12:32 +0100)]
Extended check for being active window object

This check enables dbus communication from TV screen reader not only with
object from the same process as active window but also with objects from
processes providing UIs embedded in active window.

This change aims to reduce chances of dbus calls from TV screen reader to background
processes that respond very slowly.

Change-Id: I0e1786d4cec4e619ec58eff273570cf5e8e2e89d

2 years agoCheck active window in spi_event_get_text_to_read() 27/285127/9
Artur Świgoń [Tue, 6 Dec 2022 13:27:00 +0000 (14:27 +0100)]
Check active window in spi_event_get_text_to_read()

This patch tries to prevent D-Bus communication with background
processes, which get very little CPU time and therefore may block
the Screen Reader for an unspecified amount of time.

Change-Id: Ic0a65ed5cc77fb232eba1f50c66379c186ec4bd9

2 years agoFix for toast popup reading 44/284144/4 accepted/tizen/unified/20221124.170847
Lukasz Oleksak [Thu, 10 Nov 2022 10:30:36 +0000 (11:30 +0100)]
Fix for toast popup reading

This patch allows a transient notification UI element (like toast popup)
to be read without inducing navigation context change. It requires,
the UI element to be given an ATSPI_ROLE_NOTIFICATION by application developer.
This is analogous case to the requirement of seting ATSPI_ROLE_TOGGLE_BUTTON role
for button using custom tizen theme style.

Change-Id: I373e6f700d28364967d256af280e33de34083b36

2 years agoRemove unused variable 35/283935/1 accepted/tizen/unified/20221108.163902
Artur Świgoń [Mon, 7 Nov 2022 10:26:27 +0000 (11:26 +0100)]
Remove unused variable

This removes a compilation warning -- which, at the time of writing
(2022-11-07), was the only one in this repository.

Change-Id: I7c0ebee64d002d57f7237236b8f45b48bed2f4e1

2 years agoFix memory leak 33/283933/1
Artur Świgoń [Mon, 7 Nov 2022 10:09:17 +0000 (11:09 +0100)]
Fix memory leak

Change-Id: I0ae3be1dea0b433cf1ef7088fe913039dd22eae6

2 years agogranularity_read: type correction and optimization in _valid_character_check() 85/283285/2 accepted/tizen/unified/20221102.020533
Maria Bialota [Fri, 21 Oct 2022 10:44:13 +0000 (12:44 +0200)]
granularity_read: type correction and optimization in _valid_character_check()

Corrected variable types and in _valid_character_check() function
and optimized number of strlen() calls in the function

Change-Id: I98dd720ea5d650bd5ffdec348cacfc04b1653423

2 years agoSimplify string handling 18/282618/6
Artur Świgoń [Thu, 6 Oct 2022 12:09:57 +0000 (14:09 +0200)]
Simplify string handling

- Removed unnecessary operations.
- Migrated complex cases from constant-size buffers and g_strlcat()
  to Eina_Strbuf and its methods.
- Redefined ESAL() as an inline function rather that a macro
  (see comments in the code for rationale).
- Added ESAF() as shorthand for eina_strbuf_append_printf().
- Replaced the recurring idiom of stealing a char* from Eina_Strbuf
  and freeing the buffer with eina_strbuf_release().
- Corrected char* to const char* in tw_speak() and tw_speak_customized()
  signatures to indicate that the parameter is read-only and not freed
  afterwards.
- Added tw_speak_and_free().

Change-Id: I95dbace34085df5fc2fd706abcf3c0367da4c42e

2 years agoFixes use after free issue 96/282596/1
Lukasz Oleksak [Thu, 6 Oct 2022 09:21:07 +0000 (11:21 +0200)]
Fixes use after free issue

Change-Id: Ia5431d0677988dea20a6ae92b1e6250e4de62420

2 years agoLimiting locking of display to completion time of last utterance 80/281680/2
Lukasz Oleksak [Tue, 20 Sep 2022 12:41:53 +0000 (14:41 +0200)]
Limiting locking of display to completion time of last utterance

Change-Id: Icfabaad91ee4e365e3b31bae72fc3d42c7108c5c

2 years agoIn new UX reading of current value is part of state phrase 33/281233/1 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/hotfix/20221116.104531 accepted/tizen/unified/20220915.173225 accepted/tizen/unified/20220916.022113 accepted/tizen/unified/20220916.022150 tizen_7.0_m2_release
Lukasz Oleksak [Wed, 14 Sep 2022 12:14:54 +0000 (14:14 +0200)]
In new UX reading of current value is part of state phrase

Change-Id: I3850bf57b6659a8886f43f6fc71cac52331aa37d

2 years agoDo not read "Image" when highlighting a Gengrid item 05/281005/1
Artur Świgoń [Wed, 7 Sep 2022 11:32:05 +0000 (13:32 +0200)]
Do not read "Image" when highlighting a Gengrid item

Change-Id: I1f23c7b5a65fb0326ba541b4225905728d6301f3

2 years agoRemoval of description trait for hoversel, inwin and combobox 83/280983/1
Lukasz Oleksak [Wed, 7 Sep 2022 08:47:22 +0000 (10:47 +0200)]
Removal of description trait for hoversel, inwin and combobox

Change-Id: Ide2287050df7d4ac6e157bc9621c74c8f71487b9

2 years agoChanges to internationalization according to new UX guidelines 62/280562/3
Maria Bialota [Wed, 31 Aug 2022 17:23:11 +0000 (19:23 +0200)]
Changes to internationalization according to new UX guidelines

Change-Id: Ibb3578f5a8a7271af2d1880444344586f4675829

2 years agoCorrect g_strlcpy() & g_strlcat() usage 45/280745/1 accepted/tizen/unified/20220908.172936 submit/tizen/20220906.053732
Artur Świgoń [Fri, 2 Sep 2022 12:25:41 +0000 (14:25 +0200)]
Correct g_strlcpy() & g_strlcat() usage

g_strlcpy() and g_strlcat() are either wrappers around system strlcpy()
and strlcat(), respectively, or GLib-provided replacements. Either way,
these functions take the whole buffer size as a parameter and take all
necessary care to copy at most (sizeof(buf) - strlen(buf) - 1) bytes and
NUL-terminate the output as well.

References:
- https://linux.die.net/man/3/strlcpy
- https://linux.die.net/man/3/strlcat
- https://docs.gtk.org/glib/func.strlcpy.html
- https://docs.gtk.org/glib/func.strlcat.html

Change-Id: I66de1f03ca84098ddc00975a7525148e1aada3a5

2 years agoRemove unused variable 44/280744/1
Artur Świgoń [Fri, 2 Sep 2022 12:38:16 +0000 (14:38 +0200)]
Remove unused variable

Change-Id: Ie020dae9397c76fee303ce5b0b8c308e07a78094

2 years agoAllows recursive composition of state and role traits through the controlled objects 81/280481/3
Lukasz Oleksak [Tue, 30 Aug 2022 16:13:30 +0000 (18:13 +0200)]
Allows recursive composition of state and role traits through the controlled objects

Change-Id: I2f3577dd906a927e88aa5623f8bbb3cdf98389f9

2 years agoIntroduce consistent method for composition of extended description 41/280241/2
Lukasz Oleksak [Thu, 25 Aug 2022 13:32:12 +0000 (15:32 +0200)]
Introduce consistent method for composition of extended description

Change-Id: I8bc5411a90ef3cf2ed6051d806c83738ee9c7ec0

2 years agoJoining slider percentage value with state trait 25/280325/3
Lukasz Oleksak [Fri, 26 Aug 2022 13:16:07 +0000 (15:16 +0200)]
Joining slider percentage value with state trait

Change-Id: I108996af10c7bbc7111ec5cb5641deaae38c1e07

2 years agoRemoved reading object name when checked state change 94/280294/1
Maria Bialota [Fri, 26 Aug 2022 08:59:26 +0000 (10:59 +0200)]
Removed reading object name when checked state change

Change-Id: I05f84146fec648055fea00c672d04fc0ab8198fa

2 years agoUnification of translation for key IDS_ACCS_BODY_DISABLED_TTS among variants of Engli... 65/280165/1
Lukasz Oleksak [Wed, 24 Aug 2022 17:12:03 +0000 (19:12 +0200)]
Unification of translation for key IDS_ACCS_BODY_DISABLED_TTS among variants of English language

Change-Id: Idcc7c3201296d2a891c3a9c3e102c3b0cd0dd9fc

2 years agoRead COMBO_BOX role only as "Dropdown list" 35/279635/2 accepted/tizen/unified/20220819.122409 submit/tizen/20220819.022316
Artur Świgoń [Fri, 12 Aug 2022 10:57:06 +0000 (12:57 +0200)]
Read COMBO_BOX role only as "Dropdown list"

Change-Id: I73ab66303c3b2bf545ef1399a98206416f27e796

2 years agoRead "Editing" as state and not description 27/279627/2
Artur Świgoń [Fri, 12 Aug 2022 09:11:43 +0000 (11:11 +0200)]
Read "Editing" as state and not description

This is a UX change. "Edit field, (pause), editing"
becomes "Editing, edit field".

Change-Id: Ia6e9c2ff84a129d9b0be6eb933965598c28a3c88

2 years agoModified reading description for slider according to new UX 66/279566/2
Maria Bialota [Thu, 11 Aug 2022 17:41:05 +0000 (19:41 +0200)]
Modified reading description for slider according to new UX

Old UX: "Slider, $value%, Flick up and down to adjust the position"
New UX: "$value%, $name, slider".

Change-Id: I4f3ab5db39baab2b93fd5cdcad2ef71ac42cd044

2 years agoRemoved omission of role reading for switch-type buttons 65/279565/2
Maria Bialota [Thu, 11 Aug 2022 16:41:29 +0000 (18:41 +0200)]
Removed omission of role reading for switch-type buttons

Also cleaned up redundant Slider role handling.

Change-Id: I8fed9de414b6960f890a66fa1ef28f87fffd084f

2 years agoMoved state information reading before the atspi object name 60/279560/3
Maria Bialota [Thu, 11 Aug 2022 11:35:15 +0000 (13:35 +0200)]
Moved state information reading before the atspi object name

Change-Id: I757fec8c4e3025a2249f8b90d15fd55732427eb9

2 years agoHandle HEADING role similarly to LIST_ITEM 14/279514/2
Artur Świgoń [Wed, 10 Aug 2022 12:47:23 +0000 (14:47 +0200)]
Handle HEADING role similarly to LIST_ITEM

The new UX mandates Genlist group items to be read as "Heading".

Change-Id: I1290a2164fc19783737ef34243ec1ead1399cc28

2 years agoAdd navigator_set_context_switch_cb 39/277639/6
Artur Świgoń [Mon, 11 Jul 2022 09:17:00 +0000 (11:17 +0200)]
Add navigator_set_context_switch_cb

This callback allows to plug in a custom context_switch action. Also,
useless assignments in navigator_init are removed (calloc is used). The
legacy function _window_at_point_check is also removed.

Change-Id: I50106cc25a322c9ac60389936366a2ba38c864f0

2 years agoGive chance to focus widget after accidentaly entered move slider mode 98/276898/2
Lukasz Oleksak [Mon, 27 Jun 2022 13:07:33 +0000 (15:07 +0200)]
Give chance to focus widget after accidentaly entered move slider mode

Change-Id: Icc24c4747212f993bcaca5a0af747c115b037eef

3 years agoSupport multi window case 82/275382/3 accepted/tizen/unified/20220622.134042 submit/tizen/20220621.022714
Shinwoo Kim [Tue, 24 May 2022 02:48:29 +0000 (11:48 +0900)]
Support multi window case

The screen-reader can launch when multi windows are showing.
In this case, the window in ACTIVE state is not enough.

This will work with following patch
https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-adaptor/+/275412

*TODO: EFL application

Change-Id: I5a02f65ba8a906808043b5d3a4327c5e17e0c1fa

3 years agoFix memory leak 95/275295/2 accepted/tizen/unified/20220524.050437 submit/tizen/20220520.094924
Shinwoo Kim [Fri, 20 May 2022 05:59:46 +0000 (14:59 +0900)]
Fix memory leak

This patch is removing memory leak detected by static analysis tool.

Change-Id: I1a4c94cd2314e5f9f6f3fd5e4b474b96bb2fc25d

3 years agoUse window resource id 55/274855/3 submit/tizen/20220520.004100
Shinwoo Kim [Wed, 11 May 2022 03:14:28 +0000 (12:14 +0900)]
Use window resource id

We need to support multi window case.
Using window resource id would be more correct way to get window
under x, y position.

This will work well only with following patch.

https://review.tizen.org/gerrit/#/c/platform/core/uifw/e-mod-tizen-screen-reader/+/274553/

and patch of each toolkit providing window attribute "ResID".

Change-Id: I4bae851422858e2db76611d8c3e959ed657984a2

3 years agowindow_tracker: remove window if bus name changed to NULL 91/274491/6
Shinwoo Kim [Fri, 29 Apr 2022 05:36:37 +0000 (14:36 +0900)]
window_tracker: remove window if bus name changed to NULL

The bus name changed to NULL means that the process of the bus name
has disappeared.

We need to handle this because a window could be removed without
"Deactivate", "Destry" signal.

Yes we have _purge_windows_list and check using _window_need_to_be_purged.
The _window_need_to_be_purged could find this kind of window though.
This could be more concrete solution.

Change-Id: I1810e92dc66fd9c956f3f97238373aca29ea66c0

3 years agoConsume unique value identifying the window on which gesture took place in multi... 65/274565/2
Lukasz Oleksak [Mon, 2 May 2022 12:40:21 +0000 (14:40 +0200)]
Consume unique value identifying the window on which gesture took place in multi-window environment

Change-Id: Ie439499eb6f2e31958f5cbb6726ead013076c669

3 years agoRead page index without a delay 60/271360/1 accepted/tizen/unified/20220310.120828 submit/tizen/20220307.015630
Lukasz Oleksak [Fri, 18 Feb 2022 09:18:50 +0000 (10:18 +0100)]
Read page index without a delay

Change-Id: I6e9cccacf7f68506343b0c175f14f9b280a28fe4

3 years agoMerge "app_tracker: fix dereference of NULL" into tizen
Lukasz Oleksak [Fri, 11 Feb 2022 11:24:04 +0000 (11:24 +0000)]
Merge "app_tracker: fix dereference of NULL" into tizen

3 years agoapp_tracker: fix dereference of NULL 23/270923/1
Shinwoo Kim [Fri, 11 Feb 2022 06:32:46 +0000 (15:32 +0900)]
app_tracker: fix dereference of NULL

The atspi_accessible_get_parent can return NULL.
So this patch is removing the possibility of dereference of NULL.

Change-Id: Ie5e89d036afcca444f450bbd21ee07ee5839c85c

3 years agoapp_tracker: use root if there is not default label object 25/270025/2
Shinwoo Kim [Mon, 24 Jan 2022 09:09:51 +0000 (18:09 +0900)]
app_tracker: use root if there is not default label object

The at-spi2-atk does not provide 'GetDefaultLabelInfo'.
The Flutter toolkit is working on the at-spi2-atk.

If Flutter window is activated, screen-reader is not working
with the Flutter window for the '1 finger swipe'.
The screen-reader is working with deactivated window.

It is because that 'on_timeout_rebuild_navigation_context'
does not call 'view_content_changed' which calls
'flat_navi_context_setup' changing context's root and current
So the context root is not changed.

The patch is calling 'view_content_changed' using
the Flutter windowk before the at-spi2-atk provides
'GetDefaultLabelInfo' interface.

Change-Id: Icf3a72a9203345857f1682706bfbc6320d0ca7b6

3 years agoapp_tracker: set timer variable to NULL before return FALSE 39/269539/2 accepted/tizen/unified/20220127.133339 submit/tizen/20220121.012748
Shinwoo Kim [Tue, 18 Jan 2022 05:42:44 +0000 (14:42 +0900)]
app_tracker: set timer variable to NULL before return FALSE

First of all, it is the correct way to use of timer.

If a toolkit does not support the default label,
then it is not able to make an object have focus (highlight)
because app_tracker_context_valid_check in _focus_widget returns
APP_TRACKER_CONTEXT_NOT_VALID.

Change-Id: I6b2db7b8afd7598d63820121725ac11a22281be0

3 years ago[TV] do not use IsEnabled property 94/269394/1 accepted/tizen/unified/20220117.134951 submit/tizen/20220114.012952
Shinwoo Kim [Thu, 16 Dec 2021 08:26:28 +0000 (17:26 +0900)]
[TV] do not use IsEnabled property

The TV NUI under the suppress screen reader mode does not need to send
ATSPI events for the screen-reader.

The TV EFL does not use screen-reader AT client for the Voice Guide.
The TV Web is enabling bridge based on VCONF or ScreenReaderEnabled.
So it is not necessary to use IsEnabled property.

This patch is to make NUI under the suppress screen reader mode
do NOT enable ATSPI bridge.

Change-Id: Idd4110336b6d8f48ebeb73387927105d93d7b742

3 years agoRevert "Remove read command if its source is defunct" 76/269376/1
Shinwoo Kim [Thu, 13 Jan 2022 08:25:16 +0000 (17:25 +0900)]
Revert "Remove read command if its source is defunct"

This reverts commit 67104439ba98710855cf321e034c03d735ba8e18.

make sams as 6.0 we will not use defunct event.
because there are too many defunct events increasing the re-enter case.

Change-Id: I3d4afa6f1edc56161404e32cc15a0e137ac59c3b

3 years agoRevert "fix build error" 75/269375/1
Shinwoo Kim [Thu, 13 Jan 2022 08:20:19 +0000 (17:20 +0900)]
Revert "fix build error"

make same as 6.0. we will not use defunct event.
there are too many defunct events increasing the re-enter case.

This reverts commit e3303adbb36a87556992d039e034d2125fa2ece9.

Change-Id: I73860782101605e47ca41b30862d8e08b9b2b023