<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/src/kitemviews/kitemlistviewaccessible.cpp, branch master</title>
<subtitle>Patched KDE Dolphin with Pixel Scaling
</subtitle>
<id>https://fiftyfourth.xyz/git/dolphin/atom?h=master</id>
<link rel='self' href='https://fiftyfourth.xyz/git/dolphin/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/'/>
<updated>2024-10-28T13:25:10Z</updated>
<entry>
<title>Overhaul main view accessibility</title>
<updated>2024-10-28T13:25:10Z</updated>
<author>
<name>Felix Ernst</name>
<email>felixernst@kde.org</email>
</author>
<published>2024-10-28T13:25:10Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=f208acd5f68c8516b9f6a920cc229803637e23e9'/>
<id>urn:sha1:f208acd5f68c8516b9f6a920cc229803637e23e9</id>
<content type='text'>
This commit brings the main view of Dolphin into a usable state
accessibility-wise. Users of screen readers should have a way better
experience while browsing files and folders and navigating along the
file system hierarchy.

This commit fixes most of the remaining already-identified
accessibility issues listed in
https://invent.kde.org/teams/accessibility/collaboration/-/issues/28,
but not all. Namely, these should now be fixed:

1. Orca should read the element type in dolphin (file, folder, device,
link to folder, link to file)
2. Orca should read complete label in icon and compact view mode,
currently it only speaks the name, but there could be additional
information like the number of elements or the file size.
3. Orca is not able to announce Selecting / Unselecting files in
Dolphin. It also never announces how many items are selected in total.
(Announcing the total selection can be done by reading out the view
element or by pressing the Tab key to get to the status bar with the
relevant information.)
4. Dolphin opens on the home directory, but Orca doesn't tell you so.
Consider enclosing the area in a frame/panel which updates its
accessible name each time you modify the current path by entering or
leaving a directory.
5. I don't know what the folder presentation widget is, but it should
be presented as a grid view. Currently, we have a terrible experience
because the entire row of folders is read at once, with no indication
that we can move left and right with the arrows to go between the
elements of a row. When I found that out, however, I discovered that
when you're on the last icon of the first row and press right arrow,
you get to the first icon of the next row, but that's not announced,
instead, the whole row is announced at once
6. Orca should announce the current elements instead of "layered pane"
when the Folder / File view gets the focus in dolphin
7. Orca reads only name in Table View only of Dolphin
8. Items are sometimes confusingly announced as "collapsed" in contexts
in which there is no concept of collapsing/expanding e.g. in icon view
mode.

A lot of code was moved around and renamed. The three accessibility
classes, which all used to be in the same file, are moved into separate
files.

*Acknowledgement*
Thanks to Christian Hempfling and bgt lover for testing as well as
originally identifying a lot of the pain points being addressed here.

This work is part of a my project funded through the NGI0 Entrust Fund,
a fund established by NLnet with financial support from the European
Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology.
https://kde.org/announcements/2024_ngi_openletter/
</content>
</entry>
<entry>
<title>Merge branch 'master' into kf6</title>
<updated>2023-10-05T15:15:35Z</updated>
<author>
<name>Nate Graham</name>
<email>nate@kde.org</email>
</author>
<published>2023-10-05T15:15:35Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=30a807e44afb334dd153c8bcbdbde4f36942bee0'/>
<id>urn:sha1:30a807e44afb334dd153c8bcbdbde4f36942bee0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix accessibility ancestor tree</title>
<updated>2023-10-05T12:09:25Z</updated>
<author>
<name>Felix Ernst</name>
<email>felixernst@zohomail.eu</email>
</author>
<published>2023-07-17T14:13:51Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=549fad2daeeccac53b88b4777dcc9effbc2110e5'/>
<id>urn:sha1:549fad2daeeccac53b88b4777dcc9effbc2110e5</id>
<content type='text'>
Before this commit, KItemListViewAccessible would always return
nullptr as its parent. This meant that accessibility software would
have to guess to which window/hierarchy the KItemListView belongs
to. Guessing shouldn't be necessary here.

This commit makes sure that the KItemListView always returns a
sensible parent in the accessible hierarchy. It does so by
explicitly setting the accessible parent for every KItemListView
after construction in the DolphinView contructor. Since
KItemListView now always knows about its accessible parent, the
accessibleInterfaceFactory can always ask the KItemListView for
that information when constructing the QAccessibleInterfaces.

Fixes https://invent.kde.org/system/dolphin/-/issues/47.
</content>
</entry>
<entry>
<title>Replace qAsConst with std::as_const</title>
<updated>2023-09-10T13:19:13Z</updated>
<author>
<name>Méven Car</name>
<email>meven@kde.org</email>
</author>
<published>2023-09-10T13:19:13Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=b58a346be96f7d0973ed96e52c4cf95463ba244d'/>
<id>urn:sha1:b58a346be96f7d0973ed96e52c4cf95463ba244d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add clang-format and format code as in Frameworks</title>
<updated>2023-02-05T05:45:38Z</updated>
<author>
<name>Serg Podtynnyi</name>
<email>serg@podtynnyi.com</email>
</author>
<published>2023-02-03T17:14:53Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=38c34eeca315c7be58e65d4d3fb72aaf7b866719'/>
<id>urn:sha1:38c34eeca315c7be58e65d4d3fb72aaf7b866719</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kitemlistview: Port KItemListView::itemAt to std::optional</title>
<updated>2021-12-28T14:48:28Z</updated>
<author>
<name>Fushan Wen</name>
<email>qydwhotmail@gmail.com</email>
</author>
<published>2021-12-27T16:51:10Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=eb0a7da653493db272ee6039d5202c5702acffc3'/>
<id>urn:sha1:eb0a7da653493db272ee6039d5202c5702acffc3</id>
<content type='text'>
Use `value_or(-1)` for those functions that don't use `std::optional`.
</content>
</entry>
<entry>
<title>Compile without foreach</title>
<updated>2020-10-23T18:23:06Z</updated>
<author>
<name>Alexander Lohnau</name>
<email>alexander.lohnau@gmx.de</email>
</author>
<published>2020-10-23T17:48:22Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=a24327cd50ef17b953ecb908d260b73460158107'/>
<id>urn:sha1:a24327cd50ef17b953ecb908d260b73460158107</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Output of licensedigger + manual cleanup afterwards.</title>
<updated>2020-08-25T17:07:38Z</updated>
<author>
<name>Elvis Angelaccio</name>
<email>elvis.angelaccio@kde.org</email>
</author>
<published>2020-08-25T17:07:38Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=954e8c47906c12edaaf6e6aebdd41516eceb0d44'/>
<id>urn:sha1:954e8c47906c12edaaf6e6aebdd41516eceb0d44</id>
<content type='text'>
Unfortunately licensedigger does not strip the trailing * characters.
While at it, use a common style for all source files.
</content>
</entry>
<entry>
<title>Remove unnecessary semicolons after Q_UNUSED</title>
<updated>2019-11-09T21:09:16Z</updated>
<author>
<name>Elvis Angelaccio</name>
<email>elvis.angelaccio@kde.org</email>
</author>
<published>2019-11-09T21:06:39Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=16a3aea6a629a91aab937be5c111b64b3ed6cf86'/>
<id>urn:sha1:16a3aea6a629a91aab937be5c111b64b3ed6cf86</id>
<content type='text'>
GIT_SILENT
</content>
</entry>
<entry>
<title>Fix crash during shutdown</title>
<updated>2019-02-18T07:58:11Z</updated>
<author>
<name>David Hallas</name>
<email>david@davidhallas.dk</email>
</author>
<published>2019-02-16T15:50:42Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=c72fdaa77380ef811dfef626a4edadbb824ed252'/>
<id>urn:sha1:c72fdaa77380ef811dfef626a4edadbb824ed252</id>
<content type='text'>
Summary:
Fix crash during shutdown. The root cause is that when Dolphin in stopped as
part of an activity, the KItemListViewAccessible destructor is called after
QApplication::exec has returned causing Qt to already having cleaned up the
QAccessibleInterface instances kept in KItemListViewAccessible. Instead of
storing the pointers to QAccessibleInterface we store the QAccessible::Id so
that we can use the QAccessible::deleteAccessibleInterface function for
deleting the instances.

BUG: 402784

Test Plan:
I wasn't able to reproduce the crash in the first place, but I have just
opened and closed Dolphin a few times and verified the the QAccessibleInterface
instances are correctly cleaned up.

Reviewers: #dolphin, elvisangelaccio, ngraham

Reviewed By: #dolphin, elvisangelaccio

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D19083
</content>
</entry>
</feed>
