Bug 447700 - Right-to-left (RTL) issues with animation timeline
Summary: Right-to-left (RTL) issues with animation timeline
Status: CONFIRMED
Alias: None
Product: krita
Classification: Applications
Component: Animation (show other bugs)
Version: git master (please specify the git hash!)
Platform: Other Other
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: rtl
Depends on:
Blocks:
 
Reported: 2021-12-30 15:52 UTC by Alvin Wong
Modified: 2022-01-30 12:33 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Animation timeline in RTL (53.58 KB, image/png)
2021-12-30 15:52 UTC, Alvin Wong
Details
Animation timeline in LTR (27.12 KB, image/png)
2021-12-30 15:53 UTC, Alvin Wong
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alvin Wong 2021-12-30 15:52:24 UTC
Created attachment 144970 [details]
Animation timeline in RTL

There seems to be some issues with RTL, where the layout is mirrored:

1. Some buttons that should be above the layer list is placed at the wrong side
2. Frame number is offset
3. The layout of the layer list rows are not mirrored
4. The playback/seeking buttons don't have their icons mirrored
5. When dragging left and right using the horizontal scrollbar, the movement direction is wrong

However, before we fix any of these we should think about whether the timeline shall be mirrored for RTL. The material design guide [1] states that "[a]nything depicting the passage of time should be mirrored", but then also states that "[d]o not mirror media playback buttons and the media progress indicator as they refer to the direction of tape being played, not the direction of time". If this is worth referencing then a possible solution is to explicitly set the layout direction of the animation timeline to be left-to-right and call it done.

This requires input from RTL users. Comments from experts would be even better.

[1]: https://material.io/design/usability/bidirectionality.html#mirroring-elements
Comment 1 Alvin Wong 2021-12-30 15:53:00 UTC
Created attachment 144971 [details]
Animation timeline in LTR

For reference, this is how it looks in LTR.
Comment 2 Eoin O'Neill 2022-01-03 21:36:41 UTC
Hi Alvin,

I'll go ahead and confirm this, though I haven't tried it yet myself. It looks like some modifications to some of the layouting math needs to be made for RTL layout considerations. I'm also not super happy with the frame number alignment in either RTL or LTR, so some modifications would be nice there anyway...

Out of curiosity, are the timeline transport controls working as expected and the icons are just backwards?
Comment 3 Alvin Wong 2022-01-04 08:28:42 UTC
(In reply to Eoin O'Neill from comment #2)
> Out of curiosity, are the timeline transport controls working as expected
> and the icons are just backwards?

Well, "expected" is a vague concept... the button to the right of the "Stop" button is "Back", and if you expect all of the layout to simply be mirrored, then yes that seems working as expected.
Comment 4 Zayed Al-Saidi 2022-01-05 20:10:26 UTC
(In reply to Alvin Wong from comment #0)
> Created attachment 144970 [details]
> Animation timeline in RTL
> 
> There seems to be some issues with RTL, where the layout is mirrored:
> 
> 1. Some buttons that should be above the layer list is placed at the wrong
> side
> 2. Frame number is offset
> 3. The layout of the layer list rows are not mirrored
> 4. The playback/seeking buttons don't have their icons mirrored
> 5. When dragging left and right using the horizontal scrollbar, the movement
> direction is wrong

I would add the default layout of workspace should be mirrored as well in RTL mode.

> However, before we fix any of these we should think about whether the
> timeline shall be mirrored for RTL. The material design guide [1] states
> that "[a]nything depicting the passage of time should be mirrored", but then
> also states that "[d]o not mirror media playback buttons and the media
> progress indicator as they refer to the direction of tape being played, not
> the direction of time". If this is worth referencing then a possible
> solution is to explicitly set the layout direction of the animation timeline
> to be left-to-right and call it done.
> 
> This requires input from RTL users. Comments from experts would be even
> better.
> 
> [1]:
> https://material.io/design/usability/bidirectionality.html#mirroring-elements

Please don't follow that guideline. It is weird!!  Now I understand the weird behavior of Android application.
Comment 5 Alvin Wong 2022-01-06 08:01:01 UTC
(In reply to Zayed Al-Saidi from comment #4)
> Please don't follow that guideline. It is weird!!  Now I understand the
> weird behavior of Android application.

Thanks for the comment. I did find more sources that concurs that media playback are always LTR:

- https://rtlstyling.com/posts/rtl-styling#media-player-icons
- https://engineering.atspotify.com/2019/04/15/right-to-left-the-mirror-world/ (in the "Exceptions" paragraph)
- https://github.com/exaile/exaile/issues/144

And a user on the Krita Artists forum also thinks the timeline should be LTR: https://krita-artists.org/t/feedback-needed-from-krita-users-who-speak-arabic-or-hebrew/34492/9

Do you agree with them?
---

By the way, should sliders (e.g. the "Speed" slider in the screenshot) be mirrored to have the bar extend from right to left too?
Comment 6 Zayed Al-Saidi 2022-01-06 10:03:53 UTC
(In reply to Alvin Wong from comment #5)
> (In reply to Zayed Al-Saidi from comment #4)
> > Please don't follow that guideline. It is weird!!  Now I understand the
> > weird behavior of Android application.
> 
> Thanks for the comment. I did find more sources that concurs that media
> playback are always LTR:
> 
> - https://rtlstyling.com/posts/rtl-styling#media-player-icons
> -
> https://engineering.atspotify.com/2019/04/15/right-to-left-the-mirror-world/
> (in the "Exceptions" paragraph)
> - https://github.com/exaile/exaile/issues/144
> 
> And a user on the Krita Artists forum also thinks the timeline should be
> LTR:
> https://krita-artists.org/t/feedback-needed-from-krita-users-who-speak-
> arabic-or-hebrew/34492/9
> 
> Do you agree with them?
Sure, I don't agree because we as RTL user start looking from right to left and this is the opposite! For media player, it is somehow  accepted since the UI is very simple and every  thing is  force to be LTR mode.  To do that in Krita the whole dock must be LTR which will weird when everything is in RTL mode. 

> ---
> 
> By the way, should sliders (e.g. the "Speed" slider in the screenshot) be
> mirrored to have the bar extend from right to left too?
The slider should follow the layout of the timeline dock. If it is RTL the progress should start from right (0%)  to left (100%)
Comment 7 Alvin Wong 2022-01-30 10:23:50 UTC
How about we first fix the current RTL layout, then we can consider adding an option to force the timeline to be in LTR for those who like it better?
Comment 8 Zayed Al-Saidi 2022-01-30 12:33:54 UTC
(In reply to Alvin Wong from comment #7)
> How about we first fix the current RTL layout, then we can consider adding
> an option to force the timeline to be in LTR for those who like it better?

That is the optimum solution.