Конвенции за поведението на двойно или тройно щракване за избор на текстови функции?

Почти всяка зряла програма, която включва текст, прилага „щракване два пъти, за да изберете думата“ и, в някои случаи, „щракване три пъти, за да изберете допълнителни неща като цял ред“ като функция. Намирам тези функции за полезни, но те често са несъвместими между програмите.

Пример – двойните кликвания на някои програми не избират крайния интервал след дума, но повечето го правят. Някои разпознават знака - като край на дума, други не. SO обича да избира целия параграф, докато пиша тази публикация, когато щракна три пъти върху него, VS web developer 2005 няма поддръжка за три щраквания и ultra-edit 32 ще избере един ред при трикратно щракване. Можем да измислим безброй несъответствия относно това как съпоставянето на шаблони с двойно и тройно кликване се прилага в програмите.

Загрижен съм как да внедря това поведение в моята програма, ако никой друг не е постигнал конвенция за това как трябва да работи съпоставянето на шаблони.

Въпросът ми е, съществува ли конвенция (конвенции? може би конвенция на MS или Linux?), която диктува как тези функции трябва да се държат на крайния потребител? Какви са те, ако има такива?


person John    schedule 04.04.2010    source източник
comment
Внедрявате ли и свой собствен компонент за текстов редактор?   -  person Matti Virkkunen    schedule 05.04.2010
comment
Браузърът Opera, който използвам, също отваря контекстното меню при двойно щракване върху дума. Трикратното щракване избира абзац.   -  person Pindatjuh    schedule 05.04.2010
comment
Гласувам да затворя този въпрос като извън темата, защото не става дума за програмиране и трябва да бъде на ux.stackexchange.com   -  person phuclv    schedule 01.06.2018


Отговори (4)


Не вярвам, че има стандарт за нивото на спецификация, което искате, и вероятно не трябва да има. Указанията за човешкия интерфейс на Apple са най- пълен. По отношение на избора на съдържание (за разлика от контроли или отделни обекти с данни), те казват:

Двойното щракване най-често се използва като пряк път за други действия, като например... за избор на дума. Трикратното щракване избира следващата логическа единица, както е дефинирана от приложението. В текстообработващ документ трикратното щракване върху дума избира абзаца, съдържащ думата.... Двойното щракване в рамките на дума избира думата. Изборът трябва да осигурява „интелигентно“ поведение; ако потребителят изтрие избраната дума, например, интервалът след думата също трябва да бъде изтрит... В някои контексти - например в език за програмиране - може да е подходящо да се позволи на потребителите да избират както лявата, така и дясната скоба (или фигурни скоби или скоби) в двойка, както и всички знаци между тях, като щракнете двукратно върху един от тях.“ (стр. 115-116)

Apple е доста специфична за това какви знаци са и какви не са включени в една дума.

Указанията за потребителско взаимодействие с Windows на Microsoft казват:

За някои типове избираеми обекти всяко щракване разширява ефекта от щракването. Например еднократно щракване в текстово поле задава мястото за въвеждане, двойно щракване избира дума, а трикратно щракване избира изречение или абзац. (p430)

Указанията за проектиране на изглед и усещане на Java Swing казват:

Двойното щракване (щракване върху бутон на мишката два пъти в бърза последователност без движение на мишката) се използва за избиране на по-големи единици (например за избиране на дума в текстово поле)…. Трикратното щракване (щракване върху бутон на мишката три пъти в бърза последователност без движение на мишката) се използва за избиране на още по-големи единици (например за избиране на цял ред в текстово поле)…. Трикратно щракване върху ред от текст демаркира всяка съществуваща селекция и избира реда.

Указанията за човешки интерфейс на Gnome не казват много за това какво трябва да направи двойното и тройното щракване.

Това ви дава свободата да изберете най-доброто за вашите потребители. Двойното и тройното щракване са експертни преки пътища, така че тяхното поведение трябва да има за цел да увеличи максимално ефективността. Помислете защо потребителят избира нещо и проектирайте, за да го направите най-лесно и бързо.

Например, очевидно обосновката зад включването на крайния интервал при двукратно щракване върху дума е, че потребителите обикновено избират дума, за да я копират или поставят на друга позиция в текста. Това означава, че автоматично включвате интервала в края, за да предпазите потребителя от необходимостта ръчно да изтрива оставащото допълнително пространство в източника и да добавя интервал за разделяне на думи в местоназначението.

По същия начин, ако потребителите избират ред от код или параграф, за да го копират или преместят някъде другаде, тогава вероятно искате да включите знаците за нов ред, така че потребителят да не остане с празен ред в източника и да принуди ръчно да добави нов ред в дестинацията (ако приемем, че не са искали да вземат реда/абзаца и да го комбинират с друг ред/абзац.

Ако изборът е за нещо различно от копиране и преместване на текст в изречения, тогава нищо от това може да не се прилага и не е задължително да искате да включвате завършващи интервали или нови редове. Ето защо не трябва да има стандарт.

Алтернатива е да направите това, което Apple нарича Интелигентно изрязване и поставяне (вижте Указанията за човешкия интерфейс) или Smart Cut и Paste на Microsoft Word, където интервалите, новите редове и други настройки се определят алгоритмично при изрязване, копиране, поставяне и изтриване, а не при избора.

person Michael Zuschlag    schedule 06.04.2010
comment
Какъв фантастичен, изчерпателен отговор! Ако имах значително количество повторения, които да дам, и средства за това, щях да ви дам награда. Маркирано с личните ми благодарности. - person John; 07.04.2010
comment
Взех свободата да гласувам за винаги отличните отговори на Майкъл вместо вас. Трябва също да погледнете неговия сайт, това със сигурност е един от най-добрите ресурси за GUI/използваемост. - person mafu; 21.05.2010

В моя перфектен свят бих искал да работи така.

  • Двойното щракване върху дума избира само думата (дума според граматическите правила на локала), без интервал в края (това е за по-лесно копиране между програми, така че да не е необходимо да премахвам интервали при поставяне)
  • Ако премахна избраната дума, моят текстов редактор е наясно със съдържанието ми и премахва всички останали допълнителни интервали
  • Трикратно щракване избира ред без завършващи нови редове. (Абзацът е дълъг ред, който е обвит)
person adamse    schedule 04.04.2010
comment
Това е любимият ми отговор, въпреки че изглежда, че все още не сме намерили официален стандарт. Но имайте моите благодарности и една оранжева стрелка за отделеното време. :) Напълно съм съгласен с всичките ти точки. Особено относно липсата на завършващи интервали -- това конкретно несъответствие между програмите ме накара да забележа колко непоследователно програмите прилагат тези функции на първо място. Благодаря, че посочихте, че трикратното щракване върху SO параграф всъщност е един ред текст. Никога не ми е хрумвало, но това е просто ред текст с пренасяне на думи, а не нови редове. :) - person John; 05.04.2010

В Windows, Linux и OS X двойно щракване избира думата под курсора тройно щракване избира целия ред текст (само един ред, т.е. обвит ред)

person rkulla    schedule 04.04.2010
comment
Chrome в Windows избира цял абзац за трикратно щракване. - person rjh; 05.04.2010
comment
само един ред, т.е. обвит ред == абзац? (в такъв случай) - person adamse; 05.04.2010
comment
Да, наистина зависи от приложението, вижте: en.wikipedia.org/wiki/Triple-click - person rkulla; 05.04.2010
comment
MS Word избира цял абзац при трикратно щракване - person phuclv; 01.06.2018

Намиране на отговори и измисляне на алтернативно решение: Обичам да пиша код или команда в текст и да ги копирам в командния ред без края \n 1. използвайте бележник 2. оградете всеки ред с () 3. използвайте ctrl + двойно щракване . Глоба...

person MPaularBear    schedule 18.12.2016