Skip to content

Etherpad page up/page down has a substandard user experience.. #4621

@JohnMcLear

Description

@JohnMcLear

https://youtu.be/d-ZM8bozIQw is the video showing an example of each of the 7 tests carried out across 6 editors (some offline, some online).

Test research findings.

1. Page down from line 0

notepad => Goes to one line above expected line
winword => Incorrect, caret in wrong place
online word => same as winword
google docs=> Incorrect
etherpad=> Incorrect, Goes to one line above expected line
libreoffice=> Really weird, caret and focus in wrong place

2. page down then up from caret at [0, whatever]

notepad=> Correct
winword=> Correct
online word=> Correct
google docs=> Correct
etherpad=> Wrong, loses a line
libreoffice=> Correct	

3. page up / down over content that is a huge length line on 0,0

notepad=> Correct
winword=> Focus is correct but caret is wrong
online word=> Same as Winword
google docs=> Incorrect (2 lines too far down
etherpad=> Completely broken
libreoffice=> Really weird, caret and focus in wrong place		

4. page down / up where notion of page break exists

notepad=> Notion doesn't exist
winword=> Really bizarre user experience and loses historical references
online word=> Nearly correct (not that winword is not correct!) .. On various page downs/page up if caret lands on blank line the historical reference position is lost.
google docs=> Loses historical references on page up after just two normal page downs with no specific line breaks etc being hit.
etherpad=> Notion doesn't exist
libreoffice=> Correct

5. caret location on X axis is maintained on page down/up

notepad=> Broken, goes to character 0 on blank line
winword=> Correct!  Very impressive, keeps indentation even after hitting blank line and visiting last character in document.
online word=> Broken, goes to character 0 on blank line
google docs=> Broken, goes to character 0 on blank line
etherpad=> Broken, goes to character 0 on blank line
libreoffice=> Broken, goes to character 0 on blank line

6. Transition / lag

notepad=> Fast
winword=> Smooth, Fast.
online word=> Jerky.
google docs=> Smooth-ish, Fast-ish.  Page identifier on scroll bar begins to land behind page location on page up/down event.
etherpad=> Slow, Jerky.
libreoffice=> Fast.

7. Page down on long text content

etherpad=> Broken.
all others=> Fine.

Some rules of page up / down

  • Caret should always go back to position on page up after page down event (consider if this should be position after others editing or new position take into account edits [much harder to implement].
  • Should always shift focus past visible content and be within a few lines of previous viewport as per spec.
  • Smooth transition is a nice to have but it should be immediate.

Aria spec https://www.w3.org/TR/wai-aria-practices-1.1/ :

Page Down (Optional): Moves focus down an author-determined number of rows, typically scrolling so the bottom row in the currently visible set of rows becomes one of the first visible rows. If focus is in the last row of the grid, focus does not move.

Page Up (Optional): Moves focus up an author-determined number of rows, typically scrolling so the top row in the currently visible set of rows becomes one of the last visible rows. If focus is in the first row of the grid, focus does not move.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions