Почему невозможно отменить входные данные в формате HTML?

В HTML в настоящее время существуют два типа элементов управления «checkbox»:

  • Флажок : позволяет включать /выключать, можно выбрать несколько значений
  • Радио : может быть выбрано только одно значение в группе, не позволяет переключать отдельные входы

Если что-то неясно, см. демонстрацию: http://jsfiddle.net/GYU8n/

Моя говядина с радио и невозможностью «снять» их (что по умолчанию является по умолчанию во всех браузерах, насколько я знаю). У нас просто была проблема с одним из наших клиентов, который настаивал на том, что нам нужно избавиться от опции «Не применимо» в форме, но это поле не требуется.

Вот проблема . Если кто-то выбирает параметр радио, возможно, с помощью misclick, нет выхода, если не предоставляется «пустая» опция (формулировка неактуальна). Очень похоже на раскрывающийся список, который не имеет пустой опции, но разница в том, что раскрывающийся список не занимает больше места в пользовательском интерфейсе , имеет ли он 2 варианта или 20. Имея выбранные значения, уже присутствующие на экране, без дополнительного клика, который требуется для раскрывающегося списка, отлично - мы постоянно используем радиостанции.

Я не могу понять, почему входные данные радиосигнала не могут быть отключены, щелкнув ввод и почему это поведение является значением по умолчанию. Щелчок на другой опции - единственный способ отменить выбор текущего, но очень вероятно, что параметры none не требуются или не применимы, поэтому после выбора значения - выбор «заблокирован», независимо от того, какой он есть.


Мои вопросы


  1. Конечно, это поведение преднамеренно и заняло комнату, полную экспертов, чтобы согласиться, но каковы могут быть эти причины?

  2. Я собираюсь идти против зерна и писать JavaScript для изменения этого поведения по умолчанию для всех будущих приложений, которые я пишу. Есть ли причина, почему я не должен?

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

  4. Возможно ли, что люди пытаются отменить выбор параметров радио, нажав их снова, ожидая переключения и разочарования?


Пример


Посмотрите на этот макет: http://jsfiddle.net/f4vXj/1/

Как это можно изменить так же, как и все видимые опции, используя элементы управления флажком и не требуя радиостанции empty , которая сама потребует ярлыка типа N/A или I don't want to fill in this field ?

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

124 голоса | спросил Wesley Murch 4 52011vEurope/Moscow11bEurope/MoscowFri, 04 Nov 2011 00:02:38 +0400 2011, 00:02:38

16 ответов


116

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

Скажите, что это чрезвычайно важный вопрос «да /нет»; пользователь несет юридическую ответственность за этот вопрос «да /нет». В этом случае вы не можете выбрать настройку по умолчанию для пользователя! Но, тем не менее, этот параметр не может быть оставлен пустым, он должен зафиксировать тот или иной. Как это полезно? Вы проверяете это при проверке (желательно на странице). Это позволяет вам убедиться, что пользователь заполнил поле, а не предполагал значение по умолчанию, что может быть очень важным.

Что касается вашего дополнительного вопроса: любой, кто использует веб-форму (или многие формы ОС), знаком с тем, как работают переключатели, поскольку они настолько распространены. В первый раз, когда они видят переключатель, они могут щелкнуть его снова, чтобы попытаться отвязать его, но они быстро узнают. И что более важно, радиокнопки функционируют, как многие физические кнопки в реальной жизни - изначально названы в честь кнопки на радиостанциях, которые имеют одинаковую функциональность.

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

Пользователи, которые использовали кнопки, знают, что вы не можете «распутать» кнопку . Разница с переключателями состоит в том, что некоторые кнопки вытесняют другие кнопки.

ответил Ben Brocka 4 52011vEurope/Moscow11bEurope/MoscowFri, 04 Nov 2011 00:19:12 +0400 2011, 00:19:12
20

Ответ на ваш главный вопрос: это унаследованное поведение, оставленное с рабочего стола. Это то, как настольные приложения делали это на протяжении десятилетий до того, как сеть появилась. Когда элементы формы появились в HTML, они просто скопировали поведение с рабочего стола. Первоначально разработчики радиокнопки, вероятно, не могли себе представить, как этот контроль будет использоваться с течением времени и не ожидал этой необходимости.

То, о чем вы просите, не редкость: стандартное решение состоит в том, чтобы иметь выбор, который в принципе «не имеет выбора».

Дополнительно: я действительно думаю, что если вы взломаете переключатели, вы обнаружите, что многие люди никогда не попытаются «разблокировать» радиокнопку. Я бы этого не сделал.

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

ответил Hagan Rivers 4 52011vEurope/Moscow11bEurope/MoscowFri, 04 Nov 2011 00:10:37 +0400 2011, 00:10:37
13

Как говорили другие, это совершенно нормальное и ожидаемое поведение.

  

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

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

ответил Schroedingers Cat 4 52011vEurope/Moscow11bEurope/MoscowFri, 04 Nov 2011 02:23:08 +0400 2011, 02:23:08
13

В соответствии с W3C поведение по умолчанию для радиоэлементов без стандартного управления, установленного на checked , равно undefined .

http://www.w3.org/TR/html401/interact/forms.html #radio

  

Радио-кнопки напоминают флажки, за исключением того, что, когда несколько разделяют   одно и то же имя управления, они являются взаимоисключающими: когда один переключается   «on», все остальные с тем же именем выключаются «выключены». ВХОД   элемент используется для создания переключателя. Если нет переключателя   в наборе, использующем одно и то же имя элемента управления, сначала «включено», пользовательский агент   поведение для выбора того, из какого элемента управления находится «включено», не определено.   Заметка. Поскольку существующие реализации обрабатывают этот случай по-разному,   текущая спецификация отличается от RFC 1866 ([RFC1866])   8.1.2.4), который гласит:

     
    

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

  
     

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

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

ответил cimmanon 28 +04002013-10-28T00:39:59+04:00312013bEurope/MoscowMon, 28 Oct 2013 00:39:59 +0400 2013, 00:39:59
10

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

Из того, что я видел по всему Интернету, нет случаев взлома радиокнопки, тогда как есть примеры фейк-хаков, где вы заметите, что система не позволяет вам выбирать несколько проверок. С точки зрения пользователя было бы легче понять, что из флажка можно выбрать только один вариант, если оставить пробел выбора радио.

ответил dg3a 4 52011vEurope/Moscow11bEurope/MoscowFri, 04 Nov 2011 10:16:47 +0400 2011, 10:16:47
8

Ответ на это - это действительно понять, почему они называются «радиокнопками».

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

Это поведение переносится на skeuomorphism программного переключателя UI программного обеспечения.

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

ответил CB Du Rietz 24 AMpWed, 24 Apr 2013 01:03:38 +040003Wednesday 2013, 01:03:38
4

Вы можете использовать небольшую тонкую кнопку (например, маленькую «х») для каждой группы радиостанций. Нажатие этой кнопки очищает радиообъекты в соответствующей группе. Это может дать меньше беспорядка, а затем все эти дополнительные «n /a» радиообъекты, плюс вам не нужно думать о том, как маркировать эти дополнительные радиообъекты.

ответил holst 15 52013vEurope/Moscow11bEurope/MoscowFri, 15 Nov 2013 19:14:13 +0400 2013, 19:14:13
3

Радиокнопка = обязательное одно значение.

Один должен быть выбран для представления. Если вы хотите вариант «Нет». сделайте первое радио «Нет».

В противном случае используйте флажки, которые позволяют использовать multi select

ответил Jon Darke 4 52011vEurope/Moscow11bEurope/MoscowFri, 04 Nov 2011 21:40:25 +0400 2011, 21:40:25
3

Реальное решение состоит в том, чтобы либо использовать combo /select с опцией none, либо всеми другими параметрами или радиоприемниками для всех параметров с опцией none, выбранной по умолчанию.

Из Википедии:

  

Радиокнопка или кнопка выбора - это тип графического интерфейса пользователя   элемент, который позволяет пользователю выбирать только один предопределенного набора   варианты.

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

ответил MB34 7 12011vEurope/Moscow11bEurope/MoscowMon, 07 Nov 2011 21:17:57 +0400 2011, 21:17:57
2

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

Оба поведения необходимы для выполнения различных задач. К сожалению, я столкнулся с этим вопросом, когда мне нужно сделать противоположное поведение по умолчанию. Теперь, если вы когда-нибудь подумаете о доступности, то если вы попытаетесь изменить поведение по умолчанию в JavaScript - ну, вы не в игре.

Теперь, для всех тех, кто защищает идеологию «обязательного ввода»: пожалуйста, осмотритесь для фактических случаев использования. Например, okcupid.com (это сайт знакомств) имеет много и много вопросов, которые бы вписывались в управление радиогруппами, если бы он не был настолько жестко и неразумно разработан, чтобы вести себя так, как его проектировал какой-то корпоративный Java-мозговой менеджер.

Если был элемент управления, который мог бы предоставить n выбор m, где n <= m , то радиогруппа, как и сейчас, будет оправдана как частный случай этого более общего контроля, но, увы, такого контроля нет (флажки позволяют варьировать количество вариантов, ограничивая количество вариантов программным путем, снова , нарушить доступность).

ответил wvxvw 13 PM00000030000004231 2012, 15:56:42
2

Это может быть субъективно, но мне действительно хотелось, чтобы это было сказано. Я думаю, что стандартные радиокнопки работают уже фантастически.

Я объясню, почему.

Давайте подумаем о пользователе в течение секунды. Что делать, если радиокнопка уже выбрана для того, что требуется Пользователю, чтобы заполнить их форму? Разве это не обеспечит замечательный пользовательский опыт?

Давайте подумаем о возможном сценарии взаимодействия с пользователем:

Предоставляя меньшее количество кликов /прикосновений , с которыми пользователь может не иметь дело, наиболее определенно обеспечит лучший пользовательский опыт. Теперь предоставленный, общий пользовательский опыт может иметь меньший шанс быть идеальным «Мне не нужно менять свой выбор» , но это возможно. Особенно, если настроить таким образом.

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

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

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

Вот очень простой пример того, что я имею в виду под выборкой:

http://www.echoecho.com/htmlforms10.htm

ответил Sean 16 62013vEurope/Moscow11bEurope/MoscowSat, 16 Nov 2013 08:35:21 +0400 2013, 08:35:21
2

Чистое решение UX может состоять в том, чтобы просто добавить вездесущую красную звездочку (*) к вопросу, который, по мнению большинства, означает «требуется».

Основная проблема с поведением переключателей, по-видимому, заключается в том, что на вопросах, спроектированных так, как показано на ссылке jsfiddle, пользователь не знает, что делать, если их ответ «ни один из вышеперечисленных». Первая мысль состоит в том, чтобы снова щелкнуть кнопку, ожидая, что это будет переключатель, который является довольно распространенной возможностью в физических кнопках.

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

ответил DocSalvager 28 SatEurope/Moscow2013-12-28T20:27:12+04:00Europe/Moscow12bEurope/MoscowSat, 28 Dec 2013 20:27:12 +0400 2013, 20:27:12
2

Полностью согласен с OP на этом. Аргумент, что «вы не нажимаете переключатель, чтобы выбрать один из двух вариантов», полностью подделка.

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

У меня есть случай, когда нам нужно разрешить пользователям показывать старые данные или только текущие данные - им не нужны 2 переключателя, потому что это двоичная операция (show /no-show). Если они щелкнули, то передумали, им нечего позволять, кроме обновления страницы. Почему они не могут выбрать /отменить выбор ONE? Для этой функции существует множество вариантов использования. Вы STILL только отправили одно (истинное /ложное) значение, чтобы логика не была нарушена.

ответил RadioButtonBad 24 AMpWed, 24 Apr 2013 00:47:13 +040047Wednesday 2013, 00:47:13
1

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

ответил ThaSaleni 24 PMpWed, 24 Apr 2013 19:44:46 +040044Wednesday 2013, 19:44:46
1

Я вижу два решения:

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

  2. Добавить флажок в группу переключателей и серость всей группы, когда флажок снят. Вы можете указать флажок «выбрать пол» для приведенного выше примера и обработать его, как если бы переключатель «other» был выбран, когда флажок снят.

ответил stevenvh 16 62013vEurope/Moscow11bEurope/MoscowSat, 16 Nov 2013 17:48:11 +0400 2013, 17:48:11
0

Я думаю, что довольно сложно ввести четкую функциональность, встроенную в элемент радио в списке, например. msgstr "выбрать none". Всякий раз, когда я видел это в Интернете, я никогда не понимал, почему это так. Я не верю, что это интуитивно.

Я думаю, что функция «четкого выбора» в случае необходимости должна быть отдельной кнопкой - почти сбрасыванием. Это особенно важно, если бы это было, например, большое количество элементов, которые прокручиваются. Кнопка «Очистить выбор» должна находиться на фиксированной области экрана.

 радиокнопки с

ответил Lisa Tweedie 19 FebruaryEurope/MoscowbMon, 19 Feb 2018 17:25:59 +0300000000pmMon, 19 Feb 2018 17:25:59 +030018 2018, 17:25:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132