Magento - зависимость от JavaScript = огромные проблемы с юзабилити - PullRequest
3 голосов
/ 28 октября 2010

Ладно, это немного напыщенная речь и вопрос в совокупности: почему, черт возьми, так сильно зависит от JavaScript? Это противоречит всем рекомендациям по юзабилити. Что раздражает, так это то, что он даже использует кнопки вместо правильных элементов отправки формы. Зачем? Это не имеет никакого смысла для меня.

Почему это так и есть ли способ обойти это?

Ответы [ 6 ]

7 голосов
/ 28 октября 2010

За последние пять лет наблюдалось увеличение числа разработчиков веб-приложений, отказывающихся от общей мудрости конца 20-го и начала 21-го века, создавая приложения и требующие JavaScript в качестве базовой технологии. Magento следует этой тенденции, потому что они хотят предоставить моду опыт, поддерживающий AJAX, а предоставление как Javascript, так и не Javascript опыта увеличивает время как разработки, так и тестирования.

Большинство решений в сфере электронной коммерции сводятся к рентабельности инвестиций в увеличение продаж. Magento подсчитал / сделал ставку / решил, что продажи, потерянные из-за людей, у которых отключен Javascript, меньше стоимости разработки как JavaScript, так и не JavaScript.

Что касается использования атрибута кнопки HTML, Magento - это не веб-страница, а веб-приложение. Их архитектура использует Java-подобный подход, в том числе пользовательский интерфейс, абстрагированный от браузера. Это означает, что PHP используется, чтобы приручить браузер, а не использовать PHP для работы с браузером. В этом контексте элементы кнопок (управляемые Javascript) имеют больше смысла. Взгляните на Google Web Tools для другого примера этого.

Способ "обойти" это не использовать Magento или настроить Magento так, чтобы он соответствовал вашей модели того, какой должна быть веб-разработка. Если ваш первый ответ на это «вау, это заняло бы слишком много времени», то поздравляю, вы думаете точно так же, как Magento. Magento, компания, не является Microsoft, Oracle или SAP. Это компания из 200 человек, и ожидать, что они решат все ваши проблемы (бесплатно), нереально.

Добро пожаловать в 2010.

3 голосов
/ 28 октября 2010

Опора Magento на JS непригодна только одним способом: вы не можете использовать магазин без него.Это большая проблема (потеря 1/20 ваших клиентов - это не мелочь), но в конечном итоге это компромисс, который, как они решили, того стоил.

В качестве примера гибкости, которую вы получаете в результате этого решения, рассмотрим случай конфигурируемых продуктов, особенно с ценовыми различиями.Magento позволяет вам создавать продукты, которые можно настраивать по N осям, рваным способом (например, некоторые комбинации цвета / размера одежды могут отсутствовать) с разными ценами для каждого варианта.Сделать это без JS было бы сложно, сделать это элегантно (что есть у Magento, по большей части) почти невозможно.Применяя JS, разработчики из Magento, Inc могут тратить свое время на реализацию этих функций быстрее, что на пользу всем.

Чтобы ответить на вопрос в конце вашего поста, нет, вы не можете обойтисьбез него - по крайней мере, без написания новой темы внешнего интерфейса, которая переопределяет все с нуля, что, похоже, еще никто не смог сделать.Лично мне кажется, что количество библиотек JS, которые использует Magento, довольно отвратительно, но никто, похоже, и не решил эту проблему.Приложение слишком сложное и плотно сплетенное, чтобы раскручивать это далеко.

Извините, это не лучшая новость, но я надеюсь, что, по крайней мере, проясним некоторые мысли о том, как все обстоит.

Спасибо,Джо

2 голосов
/ 08 декабря 2010

Мы только что изучили это, когда я наткнулся на этот пост (впервые мы использовали платформу magento и наш первый проект с ней).

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

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

Насколько мне известно, некоторые пользователи, использующие устройства с отключенным доступом (программы чтения с экрана и т. Д.), Могут не иметь возможности использовать javascript (или могут найти интерфейсы javascript более сложными в использовании, если не невозможными в некоторых случаях). В этих случаях, если это не будет грациозно ухудшаться для них, я немного обеспокоен тем, что это может вступить в противоречие с законодательством о дискриминации по инвалидности в Великобритании / ЕС (где работает наш клиент).

По этой причине я не уверен, что мы сможем занять позицию, которую займут magento-разработчики в долгосрочной перспективе (мы, вероятно, в конечном итоге вернемся назад и сами решим эту проблему, и я предполагаю, что это займет у нас больше времени, чем если бы с самого начала он изящно деградировал, и мы могли бы просто опираться на это).

Административная область менее важна, но внешний интерфейс должен работать без javascript imho, и я был немного удивлен, когда обнаружил, что он не работает без него (клиент пришел к нам, указав magento, так что нет ' мы не можем ничего сделать, кроме как работать с ним в данный момент).

2 голосов
/ 29 октября 2010

«Почему это так и есть ли способ обойти это?»

Хотя клиентская часть интенсивно использует Javascript, это необходимо только в нескольких местах.Конфигурируемые продукты - это одно.Одностраничное извлечение - это другое, но оно, по крайней мере, может быть отключено в «Система»> «Конфигурация»> «Оформить заказ»> «Параметры извлечения».

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

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

В целом Magento вполне функционален без Javascript, но не таквне коробки.«Доступная» тема может стать допустимым расширением, если кто-то захочет его разработать.

0 голосов
/ 28 октября 2010

Попробуйте использовать этот сайт с отключенным java-скриптом.Это работает, но начните считать обратные записи, и вы поймете, почему удобство использования превосходит тех немногих, кто настаивает на отключении java-скрипта.

0 голосов
/ 28 октября 2010

Я думаю, вы обнаружите, что Javascript в большинстве случаев значительно повышает удобство использования.Попытка реализовать что-то вроде сетки «Управление продуктами», дерева «Управление категориями» или редактора рекламных акций без Javascript было бы кошмаром для удобства использования.Когда вы смотрите статистику, более 95% браузеров имеют включенный Javascript, так в чем же проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...