Постепенное раскрытие информации: когда сворачивать детали, а когда показывать сразу

Выбор открытой и скрытой информации

Длинную статью легко попытаться «облегчить» одним приёмом: свернуть часть разделов и оставить на экране только короткие заголовки. Визуально страница действительно становится компактнее. Но сама по себе компактность ещё не означает, что интерфейс стал понятнее. Если пользователь вынужден раскрывать каждый второй блок, чтобы получить основной ответ, сложность не исчезает — она просто превращается в дополнительные действия.

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

Главный вопрос поэтому звучит не «что можно спрятать?», а «что пользователь должен понять до первого дополнительного действия?». От ответа на него зависит, будет сворачивание помогать чтению или мешать ему.

Progressive disclosure — это управление приоритетом, а не борьба с длиной страницы

В интерфейсе можно показать всю информацию сразу или разделить её на уровни. Во втором случае человек сначала видит основной слой, а подробности открывает только при необходимости.

Простейшая модель выглядит так:

основной ответ
↓
существенные условия
↓
понятный вход в дополнительный слой
↓
детали, примеры, история или справка

Здесь важно направление: дополнительный слой продолжает уже понятный ответ. Он не должен содержать то, без чего первый слой становится двусмысленным или вводит в заблуждение.

Например, если статья объясняет условие участия в программе, само условие и важное ограничение лучше показать сразу. В свернутом блоке можно оставить редкий частный случай, длинный пример расчёта или подробное объяснение термина. Если же спрятать само ограничение, первый экран будет давать неполную картину.

Что лучше оставлять открытым

По умолчанию видимым стоит оставлять содержание, которое большинство читателей должно увидеть для правильного понимания страницы. GOV.UK Design System формулирует похожее правило для компонента Details: он подходит для информации, которая нужна только части пользователей, и не должен использоваться для скрытия того, что понадобится большинству.

Для длинной статьи к открытому слою обычно относятся:

  • тема и основной ответ;
  • ключевой вывод текущего раздела;
  • существенные ограничения и оговорки;
  • условия, влияющие на решение пользователя;
  • текущий статус материала или процесса;
  • предупреждение о риске или невозможности выполнить действие;
  • следующий шаг, если без него задача остаётся незавершённой.

Эта логика связана с более общим принципом страницы после перехода: пользователь должен достаточно быстро понять, куда он попал и где находится нужный ответ. В более широком контексте этот путь разобран в материале о том, что происходит с пользователем после клика и как структура страницы поддерживает ожидание от перехода.

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

Основной и дополнительный слои статьи

Что можно уводить во второй слой

Хорошие кандидаты на сворачивание — детали, которые делают материал глубже, но не меняют смысл основного ответа для большинства читателей.

Тип информации Чаще оставить открытым Чаще можно раскрывать по запросу
Ответ Основной вывод Дополнительное объяснение механизма
Условия Критичное ограничение Редкий частный случай
Пример Короткий пример, если без него трудно понять правило Несколько дополнительных сценариев
Метод То, что необходимо для оценки вывода Технические подробности процедуры
История Текущее состояние Старые версии и длинная история изменений
Справка Определение необходимого термина Расширенная терминология и вспомогательные примечания

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

Один закрытый блок и accordion решают разные задачи

Словом «аккордеон» часто называют любое сворачивание. Для проектирования полезнее разделять случаи.

Один локальный disclosure

Если на странице есть один небольшой фрагмент дополнительной информации, отдельный disclosure обычно проще большого аккордеона. В HTML для такого сценария существует нативная пара <details> и <summary>. Закрытый <details> показывает подпись, а содержимое раскрывается по действию пользователя.

<details>
  <summary>Как рассчитывается показатель</summary>
  <p>Подробное объяснение формулы и исходных данных.</p>
</details>

GOV.UK также рекомендует Details вместо tabs или accordion, когда речь идёт об одном небольшом разделе дополнительного содержания.

Несколько равноправных разделов

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

Но accordion не должен становиться автоматической оболочкой для всех H2. GOV.UK отдельно рекомендует сначала проверить хорошо структурированную открытую страницу: иногда заголовки, сокращение текста или разделение материала решают задачу лучше, чем скрытие каждого блока.

Если пользователь должен открыть почти всё, сворачивание не помогает

Представим статью из восьми разделов. Все они закрыты. Человек открывает первый, затем второй, потом третий и так до конца. Формально экран в начале выглядит коротким, но фактический путь стал длиннее:

прочитать подпись
→ нажать
→ прочитать раздел
→ найти следующую подпись
→ нажать
→ повторить

В таком сценарии скрытие не сокращает когнитивную работу. Оно добавляет управление интерфейсом к обычному чтению.

Поэтому полезная проверка звучит так: может ли пользователь получить полноценный основной ответ, не раскрывая каждый блок? Если нет, вероятно, часть содержания стоит вернуть в открытый поток.

Заголовок раскрывающего блока должен заранее объяснять ценность

Подпись «Подробнее» почти ничего не сообщает. Пользователь видит действие, но не понимает, что получит после него.

Сравним:

Слабая подпись Более полезная подпись
Подробнее Как считается итоговый показатель
Дополнительно Ограничения метода
Читать ещё Пример для сложного сценария
Показать История изменений за прошлые периоды

GOV.UK для Details рекомендует короткий описательный текст, по которому человек может быстро понять, нужно ли ему открывать содержимое. Это особенно важно в длинной статье: подпись становится частью сканирования страницы.

Нельзя прятать неприятную информацию как «второстепенную»

Иногда progressive disclosure используют не ради удобства, а чтобы визуально ослабить неудобное условие. Например, основной блок обещает простое действие, а существенное исключение спрятано под нейтральным «Подробнее».

Это уже не управление глубиной ответа, а изменение его видимого смысла.

Если скрытая информация способна изменить решение пользователя, её стоит рассматривать как часть основного слоя. К таким случаям относятся:

  • ограничения доступности функции;
  • обязательные условия;
  • важные исключения;
  • существенные риски;
  • причины, по которым действие может не сработать;
  • актуальный статус, если от него зависит дальнейший шаг.

Второй слой может объяснять эти пункты подробнее, но не должен впервые сообщать о самом факте их существования.

Не каждый длинный блок нужно сворачивать

Длина сама по себе не является критерием. Иногда большой раздел проще читать открытым, потому что пользователь проходит его последовательно. А короткая справка, наоборот, может быть удачным disclosure, если нужна только небольшому числу читателей.

Перед сворачиванием полезно проверить четыре вопроса:

  1. Нужен ли этот блок большинству? Если да, оставлять его закрытым рискованно.
  2. Меняет ли он понимание основного ответа? Если да, существенную часть нужно показать раньше.
  3. Читают ли его выборочно? Если пользователь приходит только за отдельным сценарием, раскрытие может быть полезно.
  4. Можно ли упростить сам контент? Иногда проблема не в интерфейсе, а в лишнем объёме.

Последний вопрос особенно важен. Аккордеон не должен становиться способом сохранить всё, что редакция не решилась сократить.

В мобильной версии disclosure полезен, но не должен становиться костылём

На узком экране сворачиваемые блоки действительно могут уменьшить видимую длину страницы. Но мобильная версия требует собственной проверки: интерактивный элемент должен оставаться понятным, доступным для нажатия, а существенная информация — не исчезать только потому, что вертикального пространства стало меньше.

Эта граница подробно связана с проектированием мобильной версии длинной статьи: reflow, порядок блоков и touch interaction должны сохранять смысл, а не просто уплотнять интерфейс.

Практически это означает: если desktop-страница показывает основной вывод сразу, мобильный вариант не должен внезапно прятать его в accordion только ради сокращения первых экранов.

Состояние раскрытия тоже часть интерфейса

Пользователь должен понимать, открыт раздел или закрыт, и какой элемент этим управляет. Для кастомного disclosure WAI-ARIA Authoring Practices описывает состояние через aria-expanded: false для закрытого блока и true для открытого. Управляющий элемент должен быть доступен с клавиатуры и переключаться, в частности, через Enter или Space.

Но для простого сценария не всегда нужен собственный JavaScript-компонент. Нативный <details> уже даёт базовую семантику раскрытия. Чем больше кастомного поведения добавляется поверх стандартного механизма, тем важнее отдельно проверять клавиатуру, фокус, объявления состояния и работу с ассистивными технологиями.

В этой статье достаточно зафиксировать принцип: progressive disclosure — это не только визуальный эффект, но и состояние интерфейса. Глубокая проверка доступности интерактивных компонентов — отдельная задача, которую не стоит подменять самим фактом наличия стрелки или анимации.

Не вкладывайте accordion в accordion

Вложенные раскрывающиеся уровни быстро превращают страницу в дерево состояний:

раздел
  → подраздел
      → ещё один скрытый блок
          → нужная информация

Человеку приходится помнить, какие уровни уже открыты и где находится искомый фрагмент. GOV.UK прямо не рекомендует вкладывать accordions друг в друга.

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

Прямые ссылки на скрытый контент требуют отдельного сценария

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

Если целевой фрагмент находится внутри закрытого блока, возможен неприятный эффект: адрес изменился или браузер попытался прокрутить страницу, но сам нужный текст остаётся невидимым. Поэтому при проектировании нужно заранее решить, что происходит при переходе к содержимому внутри collapsed section.

Рабочие варианты зависят от реализации:

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

Так progressive disclosure не конфликтует с выборочным чтением и прямыми переходами внутри длинного документа.

Хорошее сворачивание должно работать и без эффекта «сюрприза»

После открытия блока пользователь не должен обнаруживать контент совсем другого масштаба или типа, чем обещала подпись. Если под строкой «Короткое пояснение» скрывается огромная таблица, несколько экранов текста и ещё три интерактивных элемента, ожидание нарушается.

Полезно, когда подпись и содержимое совпадают по роли:

  • «Пример расчёта» → один понятный пример;
  • «Почему значения расходятся» → объяснение причины;
  • «История изменений» → хронология;
  • «Дополнительные технические детали» → действительно вторичный технический слой.

Задача подписи — не заманить в блок, а помочь решить, нужен ли он сейчас.

Как выбрать между открытым разделом, Details, Accordion и отдельной страницей

Сценарий Чаще подходящий формат Почему
Информация нужна почти всем Открытый раздел Не создаёт дополнительного действия для основного ответа
Один короткий вторичный фрагмент Details / disclosure Даёт локальный дополнительный слой без тяжёлого интерфейса
Несколько связанных независимых разделов, которые читают выборочно Accordion после проверки сценария Позволяет выбирать релевантные секции
Материал сам решает отдельную пользовательскую задачу Отдельная страница Не заставляет помещать самостоятельный ответ внутрь скрытого блока
Текст просто слишком длинный из-за повторов Редакционное сокращение Интерактивный компонент не исправляет лишний контент

Эта матрица не заменяет пользовательское исследование, но помогает не выбирать компонент только по внешнему виду.

Выбор формата раскрытия информации

Практический сценарий проверки страницы

Перед публикацией длинной статьи со сворачиваемыми блоками полезно пройти её в нескольких режимах.

1. Прочитать только открытый слой

Без единого клика должно быть понятно, о чём материал, какой основной ответ и какие ограничения нельзя пропустить.

2. Просканировать только подписи закрытых блоков

По ним должно быть понятно, что находится внутри и кому это может понадобиться.

3. Открыть все блоки подряд

Если почти каждый раздел приходится раскрывать для нормального чтения, возможно, интерфейс скрывает слишком много.

4. Проверить клавиатуру

Фокус должен доходить до элементов управления, состояние — переключаться предсказуемо, а пользователь не должен застревать внутри компонента.

5. Проверить мобильный экран

Раскрытие не должно создавать горизонтальный overflow, слишком маленькие области нажатия или многократные дополнительные действия для основного чтения.

6. Перейти по прямой ссылке к фрагменту

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

7. Отключить JavaScript, если компонент от него зависит

Критичное содержание не должно исчезать только из-за отсутствия enhancement-слоя. Например, GOV.UK Accordion при недоступном JavaScript показывает содержимое секций открытым, сохраняя доступ к информации.

Типичные ошибки progressive disclosure

Ошибка Что происходит Что изменить
Скрыли почти всю статью Чтение превращается в серию кликов Вернуть основной поток в открытое состояние
Под «Подробнее» спрятано важное условие Первый слой даёт неполный ответ Показать условие сразу, детали оставить вторым уровнем
Accordion используется вместо редакторской работы Лишний текст сохраняется, но становится менее заметным Сначала сократить и перегруппировать содержание
Подписи ничего не объясняют Пользователь открывает блоки наугад Назвать конкретный результат раскрытия
Вложенные accordions Содержание трудно найти и восстановить контекст Упростить уровни или разделить материал
Мобильная версия закрывает главное Экономия места увеличивает стоимость доступа Сохранить основной ответ видимым
Скрытый блок недоступен с клавиатуры Часть пользователей не может получить содержимое Использовать корректную семантику и проверить interaction

Короткое правило для редактора и дизайнера

Перед тем как свернуть блок, полезно закончить предложение:

«Мы скрываем это по умолчанию, потому что…»

Хорошие продолжения:

  • «…эта деталь нужна только части читателей»;
  • «…основной ответ уже понятен без неё»;
  • «…это исторический слой, а пользователю сначала нужен текущий статус»;
  • «…это дополнительный пример, который не меняет правило».

Слабые продолжения:

  • «…страница слишком длинная»;
  • «…так выглядит аккуратнее»;
  • «…мы не хотим удалять текст»;
  • «…на мобильном всё не помещается на первый экран».

Вторая группа описывает визуальный симптом, но не объясняет информационную роль скрытого слоя.

Итог

Постепенное раскрытие информации полезно тогда, когда сохраняет ясный основной путь и даёт дополнительную глубину тем, кому она нужна. Основной ответ, существенные условия и ограничения лучше оставлять видимыми. Вторичные пояснения, редкие сценарии, длинные примеры и исторические слои можно раскрывать по запросу.

Выбор между обычным открытым разделом, <details>, accordion и отдельной страницей должен зависеть от пользовательской задачи, а не от желания визуально сократить материал. Если после сворачивания человеку приходится открыть почти всё, интерфейс стал короче только на скриншоте.

Рабочая последовательность выглядит так: сначала определить информационный приоритет → затем решить, какой слой можно сделать вторичным → дать этому слою понятную подпись → проверить состояние, клавиатуру, мобильный сценарий и прямые переходы. Тогда progressive disclosure действительно уменьшает перегрузку, а не прячет её.

Источники