Пейджинг Paging

Постраничная навигация (пейджинг или пагинация) — способ представления большого количества однородной информации, когда контент разбивается на страницы.

В Контуре прижился термин «пейджинг», хотя в интернете чаще используют термин из издательского дела — «пагинация».

Когда использовать

Используйте пейджинг, когда другие способы структурирования информации (категории, фильтры) уже задействованы.

Описание работы

Высоту страницы подбирайте так, чтобы она была не слишком большой, но и не слишком маленькой. Оптимально, когда страница по размеру как 2 — 3 экрана пользователя.

Вид пейджинга по умолчанию:Пейджинг: выбрана 1-я страница, за ней ссылки 2, 3, 4, 5, многоточие, 30 и «Дальше»

Пейджинг нужен только для двух и более страниц. Если контента только на одну страницу — не показывайте пейджинг.Пейджинг из одной выбранной страницы 1 и серой неактивной ссылки «Дальше»

Неправильно

Если страниц 7 и меньше, то показываются ссылки сразу на все 7 страниц:Пейджинг на 7 страниц: выбрана 1-я, видны ссылки на все страницы до 7-й и «Дальше»

Если больше 7 страниц, показывается ссылка на последнюю страницу после многоточия:Пейджинг на 8 страниц: выбрана 1-я, за ней 2, 3, 4, 5, многоточие, последняя 8-я и «Дальше»

Слева и справа от текущей присутствуют ссылки на 2 соседние страницы. Чтобы пользователь мог перемещаться через одну. Плюс ссылки на первую и последнюю страницы.

Исключения — пятые страницы с начала и с конца. Пейджинг с выбранной 5-й страницей из 30: 1, многоточие, 3, 4, 5, 6, 7, многоточие, 30 и «Дальше» — первое многоточие скрывает одну 2-ю страницу

Неправильно

Пейджинг с выбранной 5-й страницей из 30: все страницы с 1-й по 7-ю, многоточие, 30 и «Дальше»

Правильно

Если в этом случае страниц всего 8, показывайте все страницы, иначе за многоточием придётся скрывать 1 страницу:Пейджинг на 8 страниц с выбранной 4-й: страницы с 1-й по 6-ю, многоточие вместо одной 7-й, затем 8 и «Дальше»

Неправильно

Пейджинг на 8 страниц с выбранной 4-й: все страницы с 1-й по 8-ю и «Дальше»

Правильно

Такое же правило и для пейджинга без последней страницы. При переходе «Дальше» всегда сохраняются две страницы вперёд и назад от текущей:Пейджинг без последней страницы: 1, многоточие, 42, 43, выбранная 44, 45, 46 и «Дальше»

Если новые записи добавляются в начало выборки очень быстро, это может вызывать неудобства: к тому времени, пока пользователь решит перейти на вторую страницу, появится такое количество новых записей, что после перехода пользователь увидит то же самое, что видел на первой странице. Часто эту проблему решают использованием обратного пейджинга, когда контент жёстко привязан к номеру страницы. Но обратный пейджинг — это плохой интерфейс, он перекладывает сложность на пользователя: Обратный пейджинг: выбрана страница 351, за ней по убыванию 350, 349, 348, 347, многоточие и «Дальше»

Неправильно

В интерфейсах Контура в таком случае рекомендуется «замораживать» постраничную навигацию: появление новых записей никак не влияет на пейджинг до тех пор, пока пользователь не обновит страницу или не кликнет по специальной кнопке:Над списком записей голубая плашка «15 новых записей», под списком пейджинг с выбранной 1-й страницей из 30

Когда человек обновляет страницу или возвращается назад, показывайте то место, где он был. Для этого запоминайте позицию скролла и номер страницы пейджинга.

Все состояния

При переходе между первыми тремя страницами ссылка «Дальше» остаётся неподвижной. Так можно скроллить страницу колесиком мыши и кликать «Дальше» повторно, не прицеливаясь.Состояния пейджинга на 30 страниц. Пока выбрана одна из первых страниц, видны ссылки с 1 по 5, многоточие и 30, а «Дальше» стоит на месте. Затем вокруг выбранной по две соседние, с 26-й видны все страницы до конца. На 30-й «Дальше» серая.

Пейджинг без последней страницы

Не показывайте общее количество страниц в следующих случаях:

  1. Его сложно и «дорого» считать.
  2. Оно не нужно пользователю, например, в результатах поиска. Лучше показывать количество результатов.

В таком случае показывайте ссылки на первые 5 страниц и многоточие:Пейджинг без последней страницы: выбрана 1-я, за ней 2, 3, 4, 5, многоточие и «Дальше»

При перемещении по страницам слева и справа от выбранной страницы должно быть не менее двух ссылок на соседние страницы:Пейджинг на 30 страниц в трёх состояниях. Выбрана 5-я: страницы с 1-й по 7-ю, многоточие, 30. Выбрана 6-я: 1, многоточие, с 4-й по 8-ю, многоточие, 30. Выбрана 30-я: 1, многоточие, с 26-й по 30-ю, «Дальше» серая.

Доступность

Управление клавиатурой

При переходе к пейджингу клавишей Tab первая страница получает фокус — появляется чёрная рамка. Пейджинг: выбранная 1-я страница в фокусе — вокруг неё чёрная рамка

Переключение фокуса между страницами производится клавишами со стрелками ← →. Перемещение фокуса клавишей со стрелкой вправо: чёрная рамка переходит с 1-й страницы на 2-ю, после нескольких нажатий — на 30-ю, затем на ссылку «Дальше». Выбранной всё время остаётся 1-я страница.

Tab переводит фокус на следующий контрол. Это нужно, чтобы пользователь мог быстро перемещаться по странице табом, не «залипал» на сложносоставных контролах типа пейджинга или группы радиокнопок.

Горячие клавиши

Между страницами можно переключаться, используя сочетание клавиш Ctrl → и Ctrl ← в Windows, и ⌥  → и ⌥  ← на Mac.

Об этом подсказывает подпись под выбранной страницей.Под выбранной страницей серая подсказка о горячих клавишах: у 1-й — Ctrl и стрелка вправо, у 2-й — Ctrl и стрелки в обе стороны, у последней 30-й — стрелка влево и Ctrl

По умолчанию такое управление доступно только когда пейджинг в фокусе, но компонент можно переключить в режим, когда такое управление будет доступно всегда.

Стремитесь к тому, чтобы на странице был только один блок с постраничной навигацией. Если таких блоков несколько — сделайте так, чтобы горячими клавишами переключался только тот, который ближе всего к центру окна браузера.