platform icon indicating copy to clipboard operation
platform copied to clipboard

Изменяет дизайн совета

Open igsekor opened this issue 2 years ago • 16 comments

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

Screenshot 2022-07-13 at 14 15 25 Screenshot 2022-07-13 at 14 15 10

igsekor avatar Jul 13 '22 11:07 igsekor

Сафари, совет выглядит так:

  1. Видно стрелочку от детейлс
  2. Кнопка развернуть, кажется, не на своём месте
CleanShot 2022-07-25 at 16 41 12@2x

Не обрабатываются бэктики в свёрнутом состоянии

CleanShot 2022-07-25 at 16 44 04@2x

В развёрнутом состоянии первый абзац с отступом, видна стрелочка детейлс

CleanShot 2022-07-25 at 16 44 31@2x

solarrust avatar Jul 25 '22 12:07 solarrust

А мы можем определять длину совета? Кажется, если совет короткий и помещается в «закрытое» состояние, то можно скрывать кнопки Развернуть/Свернуть. Пример совета: https://doka.guide/css/has/#realetive-sovetuet

CleanShot 2022-07-27 at 09 34 48@2x

solarrust avatar Jul 27 '22 05:07 solarrust

А мы можем определять длину совета? Кажется, если совет короткий и помещается в «закрытое» состояние, то можно скрывать кнопки Развернуть/Свернуть. Пример совета: https://doka.guide/css/has/#realetive-sovetuet

Можем, хорошая мысль. Сделаю :)

igsekor avatar Jul 27 '22 05:07 igsekor

  1. Пофиксила липкое позиционирование у кнопки Развернуть/Свернуть.
  2. Надо бы «пропускать» клики через оверлей в нижней части свёрнутого совета.
  3. Нужно реализовать кнопку Развернуть/Свернуть именно кнопкой, а не псевдоэлементом. Кажется, сейчас это не очень доступно получилось. Можно уточнить у @TatianaFokina на всякий случай. Думаю, она не откажет в небольшой подсказке.

solarrust avatar Jul 27 '22 06:07 solarrust

  1. Пофиксила липкое позиционирование у кнопки Развернуть/Свернуть.
  2. Надо бы «пропускать» клики через оверлей в нижней части свёрнутого совета.
  3. Нужно реализовать кнопку Развернуть/Свернуть именно кнопкой, а не псевдоэлементом. Кажется, сейчас это не очень доступно получилось. Можно уточнить у @TatianaFokina на всякий случай. Думаю, она не откажет в небольшой подсказке.

Кажется, что есть несколько проблем, которые скорее UX.

  1. Сейчас кликабельна вся область блока <details>. С точки зрения доступности большая область клика — хорошо. Но тут возникает две проблемы. 1) Не очевидно для пользователе мыши, что можно кликнуть не только на элемент «Развернуть/Свернуть». 2) Более серьёзная проблема — когда я пытаюсь выделить текст совета, то после отжатия клавиши блок каждый сворачивается, ведь произошло событие по клику.
  2. Зрячих пользователей клавиатуры может запутать всё этот же элемент «Развернуть/Свернуть». На него нельзя сделать фокус, а раскрытие блока по нажатию на Enter для них может быть не очевидно. Поэтому часть таких пользователей будет просто перемещаться по ссылкам в ограниченном по высоте блоке. Небольшая область просмотра с советом Алёны Батицкой. В фокусе ссылка «Открыть демо в новой вкладке», демка обрезана.

Вариант решения: раскрывать и скрывать блок при клике / нажатии клавиши на кнопке. Как с обычными аккордеонами это делают, в общем. Или идти по пути раскрывающегося блока по заголовку.

Пример с раскрывающимся блоком. Пример с аккордеоном.

Либо можно отслеживать ещё нажатие на Tab. То есть, когда в фокусе с клавиатуры оказался <details>, то блок тоже разворачивается. Насчёт последнего думаю, что это больше хак для тех, кто видит интерфейс и пользуется клавиатурой. И это не очень контролируемое поведение с точки зрения пользователя, но это более дешёвое решение. Однако проблему сворачивания блока по клику, если копируешь что-то, это не решит.

TatianaFokina avatar Jul 27 '22 10:07 TatianaFokina

Я бы отошла от привязки к детейлс+саммари, раз нам оно не подходит и его нужно допиливать и переключилась бы на решение с аккордеоном. Кажется, это будет более логично как с точки зрения затрат времени, так и сточки зрения пользователя (клики, доступность и вот это вот всё). Что скажешь?

solarrust avatar Jul 27 '22 11:07 solarrust

Я бы отошла от привязки к детейлс+саммари, раз нам оно не подходит и его нужно допиливать и переключилась бы на решение с аккордеоном. Кажется, это будет более логично как с точки зрения затрат времени, так и сточки зрения пользователя (клики, доступность и вот это вот всё). Что скажешь?

Не уверена, спрашиваешь ли ты меня, но я бы выбрала такой вариант.

TatianaFokina avatar Jul 27 '22 16:07 TatianaFokina

Вопросы:

  • мы не хотим разворачивать свёрнутый совет простым кликом на всём блоке? Гораздо проще попасть в большую штуку (особенно на мобиле), чем в кнопочку.
  • можно ли убрать «советует» из списка слева? если советует несколько людей, то эта часть становится шумной image
  • можно ли исключить заголовки внутри совета из содержания? или мы будем это контролировать руками? image

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

nlopin avatar Aug 08 '22 10:08 nlopin

Вопросы:

  • мы не хотим разворачивать свёрнутый совет простым кликом на всём блоке? Гораздо проще попасть в большую штуку (особенно на мобиле), чем в кнопочку.

Сначала так и было, поскольку использовался details / summary. Потом решили, что выделять и копировать часть текста / кода важнее. Хотя можно сделать и своё поведение только для свёрнутого совета.

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

Да, можно было бы 😇 Что думаете?

  • можно ли исключить заголовки внутри совета из содержания? или мы будем это контролировать руками?

Можно порешить... Нужно?

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

Да можно всё сделать тут, думаю)

igsekor avatar Aug 08 '22 10:08 igsekor

  1. В тёмной теме кнопка светится нездоровым светом =)
CleanShot 2022-08-08 at 14 24 21@2x
  1. Если перейти по URL заголовка из совета — в свёрнутой карточке будет видно только этот заголовок и не будет кнопки «Развернуть». https://share.cleanshot.com/a6UnH8 (смотреть до конца 😆)
  2. При сворачивании нужно подкручивать экран к заголовку перед советом.

Ответы:

Да, можно было бы 😇 Что думаете?

Может вообще сделаем один заголовок «Советы» и не будем выводить в боковое меню имена советчиков?

Можно порешить... Нужно?

С заголовками точно что-то нужно думать (см. п.2). Можем сделать вид что их нет =)

solarrust avatar Aug 08 '22 10:08 solarrust

Я думаю, что формат совета если предполагает заголовок, то только один — в начале. Пока их нет, предлагаю выкидывать и завести задачу на обсудить.

nlopin avatar Aug 09 '22 08:08 nlopin

Кстати, вопрос, а не хотим кнопку, чтобы поделиться советом и получить ссылку?

furtivite avatar Aug 10 '22 12:08 furtivite

Кстати, вопрос, а не хотим кнопку, чтобы поделиться советом и получить ссылку?

Мне кажется, что это странно. Тем паче, что можно скопировать якорную ссылку на заголовок...

igsekor avatar Aug 11 '22 09:08 igsekor

Новая итерация, налетайте 🙃

igsekor avatar Aug 11 '22 14:08 igsekor

Что если для тени кнопки использовать не переменные тем, а фиксированный цвет из макета — rgb(0 0 0 / 0.1)? Кажется, так тень будет выглядеть не такой грязной. Выскажитесь, пожалуйста!

CleanShot 2022-08-17 at 13 12 19@2x CleanShot 2022-08-17 at 13 13 54@2x
  • Когда кнопка в состоянии «Свернуть», наверное, нужно менять + на -?
  • Надо прописать кнопке font-family: var(--font-family);, а то сейчас она Arial'ом.

solarrust avatar Aug 17 '22 09:08 solarrust

Что если для тени кнопки использовать не переменные тем, а фиксированный цвет из макета — rgb(0 0 0 / 0.1) Кажется, так тень будет выглядеть не такой грязной. Выскажитесь, пожалуйста!

Ну я окажусь в меньшинстве, думаю. Но я бы не менял. Почему-то... 😇 Но я всего лишь боцман (и это максимум)... А вот @skorobaeus — настоящий капитан!

  • Когда кнопка в состоянии «Свернуть», наверное, нужно менять + на -?

Ну я молодец! Сделал 😇

  • Надо прописать кнопке font-family: var(--font-family);, а то сейчас она Arial'ом.

Готово! 🙃

igsekor avatar Aug 24 '22 15:08 igsekor

Всё клёво визуально и с мышью :)

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

Варианты фикса: 1) самое простое перенести кнопку внутрь блока с советом в самое начало. Но надо будет переписывать стили. 2) Управлять фокусом через JS. Отслеживать событие нажатия Tab и Tab + Shift и в первом случае фокус переносить на первого интерактивного ребёнка блока совета, во втором на первый интерактивный элемент перед блоком совета.

Мини-замечание по aria-pressed. Оно больше для тогла подходит или кнопки для фильтра, а тут больше aria-expanded по функциональности кнопки. Так что я бы просто этот атрибут удалила, он не нужен в этом случае. А если навешивать aria-expanded на кнопку, то надо связать с ней будет контейнер с внутренностями совета через aria-controls на кнопке и id у контейнера для внутренностей.

И ещё самое последнее. Сейчас при нажатии на кнопку не понятно, она развёрнута или нет. Поэтому я бы 1) либо удалила aria-label и навесила aria-live="polite" на кнопку, тогда скринридер будет читать изменившийся текст кнопки. 2) Либо меняла бы содержимое лейбла на развернуть совет и свернуть совет в зависимости от развёрнутости блока. 3) Либо оставила как есть скрытый лейбл, но тогда надо эту логику с aria-expanded делать и добавлять дополнительную обёртку для внутренностей совета.

TatianaFokina avatar Aug 26 '22 11:08 TatianaFokina

Что если для тени кнопки использовать не переменные тем, а фиксированный цвет из макета — rgb(0 0 0 / 0.1)? Кажется, так тень будет выглядеть не такой грязной.

Ну я окажусь в меньшинстве, думаю. Но я бы не менял. Почему-то... 😇 Но я всего лишь боцман (и это максимум)... А вот @skorobaeus — настоящий капитан!

Я бы не сказала, что какая-то из теней выглядит грязной. На мой взгляд они почти одинаковые :)

Но если в совете есть демка или схема, то тогда в светлой теме кнопка начинает гореть потусторонним огнём, потому что демки и схемы всегда тёмные:

image

Чтобы этого избежать, лучше использовать вариант Алёны :)

skorobaeus avatar Aug 26 '22 14:08 skorobaeus

Идея для маленьких советов: тем же скриптом, которым мы определяем нужна ли кнопка «Развернуть» проставлять height: auto карточке.

solarrust avatar Sep 02 '22 06:09 solarrust

Превью контента из 2474094244900cf15223279f253a2dd96457b3ae опубликовано.

github-actions[bot] avatar Sep 08 '22 12:09 github-actions[bot]