Когда делаешь на сайте раскрывающееся меню, бывает непонятно, как поступить с узловыми элементами.
Вот меню с сайта Dell. Как вы думаете, если нажать на «Laptops and Tablets», откроется новая страница? Я бы засомневался.
С одной стороны контекстное меню в Windows учит нас, что на узловые элементы нажимать нет смысла.
С другой — опыт, подсказывающий, что на сайтах иногда нужно кликать по узловым элементам, а также характерный для ссылок курсор.
На сайте Dell меню ведет себя как в Windows. А на сайте Cisco по-другому.
Как быть?
- Можно не делать ссылку, при наведении пусть будет курсор-стрелочка. Преимущество подхода: не нужно сооружать страницу промежуточного уровня. Часто от безысходности на ней размещают копию вложенного меню, получается одна из популярных разновидностей мусорных страниц. Плохо, когда содержание сайта создается с целью соответствовать меню. Должно быть наоборот.
- Можно делать ссылку. Если сайт сложный, как у Cisco, то агрегирующие страницы уместны. Хорошо, когда у пользователя есть несколько альтернативных возможностей найти, что нужно.
- Если вы делаете ссылку, и она ведет не на агрегирующую страницу, а в самодостаточный раздел сайта, то продублируйте ее во вложенном меню. Иначе некоторые пользователи раздел не найдут. Проверено.
Комментарии
Гость, 05.02.2009 01:52
В Drupal вообще нет доступной возможности не делать узловые элементы меню ссылками. Мне кажется, популярные цмски с заложенными в них решениями кучу народу сбивают с толку.
Дмитрий Сергеев, 05.02.2009 13:33
Можно в template.php слегка переопределить theme_nice_menu_tree.
Андрей Лазарев, 08.02.2009 12:34
А еще лучше theme_menu_item_link($link), опираясь, например, на глубину пункта меню $link['depth'] или устанавливая специальный href ссылки.
dV, 05.02.2009 12:15
Указанное выше меню - древовидное, отсюда выходит что вложенные элементы являются потомками, т.е их предок является веткой и соответственно как и подобается ветви он содержим инфу о своих потомках.
Отображение это инфы - задача представления.
Оно может быть:
1. Выпадающий список с ссылками только на лисьтях
2. Выпадающий список с ссылками как на лисьтях, так и на ветвях. Соответственно, при клике на ветку, по логике, должна отображаться та же инфа только на странице, т.е., например, список страниц-потомков с описанием.
Такое действительно иногда нужно, но чаще нет.
Часто вижу, что родитель ссылается на своего первого потомка. Я считаю это избыточным, хотя бы из соображений дублирования страницы по 2 разным URL'ам.
P.S. В принципе, проблему избыточности URL'ов можно обойти 301 редиректом.Но я бы все же делал НЕкликабетельным предка, дабы не вводить в заблуждение.
uggallery, 05.02.2009 12:43
И это только одна из многих причин почему на сайтах нельзя использовать выпадающие меню. А также, прочие интерактивные многоуровневые штуки. Сколько с ними не возись, найдется достаточно пользователей, у которых возникнут проблемы при взаимодействии с. Выпадающее меню - признак того, что разработчикам было лень думать, так считаю.
Дмитрий Сергеев, 05.02.2009 13:29
Мне тоже не нравятся раскрывающиеся меню. Но, как вы точно подметили, иногда лень думать.
А бывает, оно дает возможность смышленым пользователям не загружать промежуточную страницу. Еще бывает, что страницы сайта можно облегчить, отправив десяток малоценных ссылок на второй уровень.
uggallery, 05.02.2009 13:59
Ну, в общем, из всех указанных причин, я только лень считаю уважительной ;)) Остальное "за отмазку не канают" )) имхо. Не буду объяснять почему, все есть у классиков, ничего нового не скажу.
При желании можно сделать выпадающее меню хотя бы более-менее понятным (знаю как). Но оно будет менее красивым и эффектым. Зато удобным и эффективным. Но кто же будет жертвовать красотой ради какого-то там удобства? ;))
Дмитрий Сергеев, 05.02.2009 14:10
Еще компромисс. Скажем, заказчик говорит, что нужно двадцать разделов. А места под них нет, макет изначально не рассчитан, половина разделов дутой важности. Тут раскрывающееся меню спешит на помощь.
uggallery, 05.02.2009 14:46
Форс-мажор, всё понимаю. Если заказчик не слушает слов разума, что тут поделаешь?
SKYNET! MJ, 06.02.2009 14:02
не согласен. выпадающее меню позволяет добраться до цели за один клик.
uggallery, 08.02.2009 12:45
Обманчивая простота. Вы рассуждаете как создатель меню, а не как потенциальный пользователь. Прежде чем сделать этот клик, нужно найти ссылку. А она спрятана в 2-3-х уровнях. Вопрос: откуда пользователь (который на сайте в первый и последний раз) узнает, что ссылка находится там, и что это именно та ссылка которая ему нужна. И это только одна из множества проблем.
Странно повторять все это. Нильсен об этом писал лет десять назад. Всё это не ново.
Дмитрий Зимин, 05.02.2009 22:53
В Windows мы имеем дело с командным меню, а в веб - с меню содержимого. Так как архитектура PC не предусматривает вложенных комманд, то и привычки ожидать действия от узлового элемента у нас нет :) В отличие опять же от веба. Где все - суть страницы с содержимым или команды (возвращающие опять же страницы).
Дмитрий Сергеев, 05.02.2009 23:23
Мне кажется, мало кто осознает это различие. А сходство в поведении двух меню улавливается на подсознательному уровне.
И потом, есть ведь и меню программ. File - Edit - View. Там на узловые элементы тоже нажимать нельзя. Но к пункту Help команд мало остается.
Дмитрий Зимин, 07.02.2009 02:02
Вот я как раз про меню. Только не "меню программ", а "меню команд". Там нигде нельзя использовать узловой элемент кроме как в целях навигации :)
А на сайте - навигация по страницам. Отсюда и путаница.
Мне кажется самое безболезненное решение из 2 шагов:
1. На узловые пункты ставить cursor: point.
2. Узловой элемент меню имеет графическую метку: стрелку вправо (как почти во всех OS).
SKYNET! MJ, 07.02.2009 11:39
Да, но раздел все равно будет в хлебных крошках. Т.е. даже не стирая часть пути можно будет туда попасть. Так вот что там выдавать?
Дмитрий Зимин, 11.02.2009 11:54
А я не говорил, что эта страница вообще должна существовать :-)
Артём Курапов, 06.02.2009 00:03
Можно узловую страницу просто сделать редиректом на первый дочерний элемент. Зависит от контекста - если это просто группировка элементов без отображения то своего рода абстрактный класс, а если нажимаемый то вполне реальный класс, а дочерние его ещё и наследуют.
Логика программиста :)
SKYNET! MJ, 06.02.2009 14:04
а если 404 отдавать. кто что думает?
Андрей Лазарев, 08.02.2009 12:40
404 - это ошибка. Никакое действие пользователя не должно приводить к ошибке. Ошибки возникают только в случае непредвиденных ситуаций которые разработчик не имеет возможности предусмотреть.
SKYNET! MJ, 09.02.2009 19:37
намеренное удаление часть пути наврядли возможно назвать действиями пользователя
uggallery, 08.02.2009 12:57
Ок. Пусть злая судьба заставила нас использовать выпадающее меню. Но зачем использовать много уровней с узловыми элементами? Зачем усугублять? Такое меню повторяет дерево рубрик (каталогов) сайта. Зачем это пользователю? Вспомним другого классика: Алана Купера. Он писал что то вроде: "Плохой интерфейс повторяет логику реализации системы (структура сайта), а не логику пользования." Зачем пользователю древовиднаяя структура? Не используйте её, и проблемы с узловыми элементами просто не возникнет :) Другая фраза Купера: "Программисты чинят то, что не сломано." Это про данный случай.
Ребята, перечитайте Нильсена с Купером. Ей богу же, интересное чтение.
Дмитрий Зимин, 11.02.2009 11:58
Древовидная структура естественна, ибо мы живем в мире иерархий. И структура зачастую позволяет мысленно представить структуру сайта, чтобы иметь возможность в ней ориентироваться.
Пример. Если вы знаете, скажем, как расположен торговый центр относительно сторон света, вам не составит труда найти "западное крыло" здания.
uggallery, 11.02.2009 17:49
Древовидные структуры - это порождение научного образа мысли - ничего естественного. Исследования показывают, что пользователи не хотят ориентироваться, они хотят выполнить свою задачу. И пример очень "жизненный" ))) Сколько простых покупателей, по-вашему, находясь внутри здания без окон, способно четко указать на север? Скольких это волнует? Обычно, у покупателей голова занята другим.
Дмитрий Зимин, 11.02.2009 20:48
Извиняюсь, но бред. Что это за исследования с результатами "пользователи не хотят ориентироваться"? Где не хотят? В каком контексте не хотят? Ссылку на исследование можно?
Порождения научного образа мысли - это комплексные числа и ноль. Повторяю: структуры - естественны. Древовидные - тем более (как самые простые). Обоснование?
Вы в магазин приходите сосики ищете в мясном отделе или в молочном? Вы одежду в кучу сваливаете дома или группируете? А кухонные принадлежности как у вас лежат: ложки с ложками, вилки - с вилками и все это в ящике "столовые приборы"? В библиотеке книги как разложены?
Попробуйте сделать интернет-магазин, скажем, одежды, без древовидной структуры товаров и потерпите крах.