selfoss icon indicating copy to clipboard operation
selfoss copied to clipboard

a11y: entry stream pagination

Open niol opened this issue 4 years ago • 25 comments

niol avatar Sep 23 '19 13:09 niol

I wonder if using offsets is a good idea with streams. Would not it be safer to use the seek pagination introduced in https://github.com/SSilence/selfoss/pull/869?

jtojnar avatar Sep 23 '19 14:09 jtojnar

Implementing the pagination is really a wonderful idea for accessibility as well as usability benefits. I'm also happy that you used aria-current as well. Thanks a lot for this. @niol

akash07k avatar Sep 23 '19 14:09 akash07k

I'll take the comments into account later. What's also missing is navigation hash updates (i.e. https://selfoss.example.com/#unread/all/page-3).

niol avatar Sep 23 '19 14:09 niol

I'll take the comments into account later. What's also missing is navigation hash updates (i.e. https://selfoss.example.com/#unread/all/page-3).

So, are you going to work on that also?

akash07k avatar Sep 23 '19 15:09 akash07k

I'm unable to apply this patch. Error is: error: patch failed: templates/home.phtml:204

What can be the issue?

On 9/23/19, niol [email protected] wrote:

I'll take the comments into account later. What's also missing is navigation hash updates (i.e. https://selfoss.example.com/#unread/all/page-3).

-- You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/SSilence/selfoss/pull/1135#issuecomment-534134520

akash07k avatar Sep 23 '19 15:09 akash07k

@akash07k Would it work for you if we showed just previous and next buttons? Are you interested in pagination simply to limit the amount of content on the screen for easier navigation with screen reader, or do you need to be able to switch to arbitrary page?

@niol Could we make this configurable? I actually prefer to be able to scroll back to the previous items. Also, how does this interact with auto_stream_more option?

jtojnar avatar Sep 23 '19 15:09 jtojnar

@akash07k Would it work for you if we showed just previous and next buttons? Are you interested in pagination simply to limit the amount of content on the screen for easier navigation with screen reader, or do you need to be able to switch to arbitrary page?

@niol Could we make this configurable? I actually prefer to be able to scroll back to the previous items. Also, how does this interact with auto_stream_more option?

@akash07k Would it work for you if we showed just previous and next buttons? Are you interested in pagination simply to limit the amount of content on the screen for easier navigation with screen reader, or do you need to be able to switch to arbitrary page?

@niol Could we make this configurable? I actually prefer to be able to scroll back to the previous items. Also, how does this interact with auto_stream_more option?

Actually, it would be very good and sofisticated if the navigation for the arbitrary pages will be provided by the pagination impletation. But if it is very difficult to achieve and implement, then we can just compromise with 'next' and 'previous' buttons only.

akash07k avatar Sep 23 '19 15:09 akash07k

But if it is very difficult to achieve and implement, then we can just compromise with 'next' and 'previous' buttons only.

It should be possible to combine seek pagination with explicit pages (via seek+offset) but the question is if we should. Selfoss strives to be a simple program to use so we need to always ask if the feature would help someone achieve a concrete existing goal. Hypothetical use cases or the fact that other software provides the feature is not sufficient reason to implement it.

I cannot come up with a task that would jumping to a specific page achieve, so I want to know more about your use case. For example, for the “Next” button, we could say: “I have read all the news on this page and want to read more.”

Also if we wanted to keep the page numbers, we would need to trim the navigation somewhat to avoid too many buttons:

Screenshot of the items view in selfoss with this patch applied, scrolled to the bottom of the page, the 289 buttons for switching page occupying most of the screen

Having more information about your use case would allow us to make the pagination usable for you, while omitting everything that you do not need. I assume having screen reader to navigagate 289 buttons will not be pleasant either.

jtojnar avatar Sep 23 '19 16:09 jtojnar

But if it is very difficult to achieve and implement, then we can just compromise with 'next' and 'previous' buttons only.

It should be possible to combine seek pagination with explicit pages (via seek+offset) but the question is if we should. Selfoss strives to be a simple program to use so we need to always ask if the feature would help someone achieve a concrete existing goal. Hypothetical use cases or the fact that other software provides the feature is not sufficient reason to implement it.

I cannot come up with a task that would jumping to a specific page achieve, so I want to know more about your use case. For example, for the “Next” button, we could say: “I have read all the news on this page and want to read more.”

Also if we wanted to keep the page numbers, we would need to trim the navigation somewhat to avoid too many buttons:

Screenshot of the items view in selfoss with this patch applied, scrolled to the bottom of the page, the 289 buttons for switching page occupying most of the screen

Having more information about your use case would allow us to make the pagination usable for you, while omitting everything that you do not need. I assume having screen reader to navigagate 289 buttons will not be pleasant either.

Actually, if it is too dificult then we can only have just previous and next buttons only. We can only have 4-5 pagination links on the page and then we can have the links for first page and last page entirely along with the next and previous page links. Also, it can be needed in the cases, for example let's say 50 items are displaying on a page and we directly want to read the news from the past let's say from 4th page, then in this case it will help. But again, if it is difficult and complicated, then we can only have just next and previous buttons/links. Also, there's no need to show all the pagination numbers.

akash07k avatar Sep 23 '19 16:09 akash07k

There is no technical difficulty but I won't use this so cannot input on the use case. I'll follow-up on the navigation hash and configurability when what's wanted is more clear.

niol avatar Sep 24 '19 07:09 niol

There is no technical difficulty but I won't use this so cannot input on the use case. I'll follow-up on the navigation hash and configurability when what's wanted is more clear.

So, what will be the current implementation of the paginations as of now?

akash07k avatar Sep 24 '19 10:09 akash07k

What's proposed here is adding page 1 to 5 buttons with current page indication. It works but needs ironing out.

niol avatar Sep 24 '19 10:09 niol

What's proposed here is adding page 1 to 5 buttons with current page indication. It works but needs ironing out.

Thanks, it's good. also, it will also be good if there will be pagination for the first and last page as well. BTW, thanks a tons for your effort bro. Till when can you complete it fully?

akash07k avatar Sep 24 '19 10:09 akash07k

Is it ready for merge?

akash07k avatar Oct 03 '19 10:10 akash07k

I wonder if using offsets is a good idea with streams. Would not it be safer to use the seek pagination introduced in #869?

In order to seek, you need to know the last item of each page to be able to jump. offset is the only way.

niol avatar Oct 03 '19 12:10 niol

Is it ready for merge?

No. Missing:

  • navigation hash updates
  • see if this can be configurable
  • add links to first and last pages
  • rebasing

niol avatar Oct 03 '19 13:10 niol

Oh, ok. :(

On 10/3/19, niol [email protected] wrote:

Is it ready for merge?

No. Missing:

  • navigation hash updates
  • see of this can be configurable
  • add links to first and last pages
  • rebasing

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/SSilence/selfoss/pull/1135#issuecomment-537935283

akash07k avatar Oct 03 '19 14:10 akash07k

Oh, ok. :( On 10/3/19, niol @.***> wrote: > > > Is it ready for merge? No. Missing: - navigation hash updates - see of this can be configurable - add links to first and last pages - rebasing -- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: #1135 (comment)

@jtojnar @niol Guys, can you please complete this implementation soon? We need it because infinite scrolling cause lots of problems and after a lot of entries gets loaded the page starts to hang due to the heaviness. I'm just requesting, please don't feel bad, this is just asimple request. :(

akash07k avatar Oct 20 '19 19:10 akash07k

I'm still not satisfied with what I have and I'm lacking time right now to look into it again.

  • navigation hash updates: not sure it is worth it
  • see if this can be configurable: not sure if worth it to introduce new parameter
  • add links to first and last pages: done
  • rebasing: I need to learn a whole new client build process and caveats, so may take some time

niol avatar Oct 20 '19 19:10 niol

I'm still not satisfied with what I have and I'm lacking time right now to look into it again.

  • navigation hash updates: not sure it is worth it In my opinion it will be worth it, rest @jtojnar your view on this?
  • see if this can be configurable: not sure if worth it to introduce new parameter
  • add links to first and last pages: done
  • rebasing: I need to learn a whole new client build process and caveats, so may take some time @jtojnar Can you please help?

akash07k avatar Oct 21 '19 10:10 akash07k

Unfortunately, I am also busy. But feel free to hit me with any questions about the client changes.

jtojnar avatar Oct 21 '19 10:10 jtojnar

@niol @jtojnar Is there any progress/update on this?

akash07k avatar Dec 21 '19 18:12 akash07k

I will be busy until February.

jtojnar avatar Dec 22 '19 17:12 jtojnar

ok bro

On 12/22/19, Jan Tojnar [email protected] wrote:

I will be busy until February.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/SSilence/selfoss/pull/1135#issuecomment-568282164

akash07k avatar Dec 22 '19 17:12 akash07k

Hey @niol , Any updates buddy?

akash07k avatar May 01 '20 16:05 akash07k