Згода перед «Зберегти» і «Надіслати»
Для розробників, у коді: яке натискання притримується і про яке питають, яке виконується одразу, як позначити безпечну кнопку і ту єдину, що зберігає, і три політики натискань.
Помічник заповнює поля одразу і притримує натискання, що їх зберігає. Ця сторінка — про це натискання: що ним вважається, як відвідувач погоджується, і яка розмітка каже помічнику, які кнопки нешкідливі, а яка саме зберігає.
Притримане натискання
Пакет кроків, що закінчується наслідковим натисканням — «Зберегти», «Надіслати», «Замовити», «Видалити», усім, чого відвідувач не поверне, — виконує введення даних і зупиняється на натисканні. Тоді помічник питає, називаючи кнопку («Натиснути “Надіслати”?»), а віджет малює два чіпи: Так, натиснути «Надіслати» і Ні, не треба. Відвідувач може відповісти і своїми словами, і вголос; відповідь оцінює сервер. Лише «так» виконує натискання — і лише на тому самому екрані: якщо відвідувач перейшов деінде, нічого не відбувається, і помічник про це каже.
Натискання як окрема команда — «надішли» — не притримується: відвідувач натискає через помічника.
Що є натисканням, а що — вибором
Віджет вирішує за стандартним ARIA, тож сторінка, розмічена для програми озвучування, отримує це задарма:
| Елемент | Вважається | Чому |
|---|---|---|
| кнопка, посилання, submit | натисканням — притримується в пакеті | діє на світ |
role="tab" або будь-що всередині role="tablist" |
вибором — виконується одразу | змінює те, що редагується |
role="option", role="radio", role="menuitemradio", будь-що з aria-selected чи aria-checked |
вибором | один із набору |
кнопка з aria-pressed усередині role="group", radiogroup, tablist, toolbar, listbox чи menu |
вибором | сегмент перемикача |
окрема кнопка з aria-pressed (Опублікувати, Вимкнути звук) |
натисканням | за ARIA — «кнопка, що виконує дію» |
розкривач з aria-expanded |
виконується одразу | елементи, які він ховає, не на екрані, доки він не відкритий |
Натискання всередині пакета з виборів і заповнень нічого не змінює для заповнень: вони лягають. Чекає лише саме натискання.
data-sa-risk="safe" — нешкідлива кнопка
Позначте кнопку, натискання якої відвідувач може скасувати, просто відвернувшись, — Додати
рядок, Відкрити діалог, Показати більше, — і помічник зможе натискати її одразу, в
пакеті з заповненнями, без питань. Працює на обгортці (<p-button data-sa-risk="safe">).
Ніколи на «Зберегти», «Надіслати» чи «Видалити». Атрибут лише знижує натискання до безпечного;
ніщо не робить натискання наслідковішим, ніж помічник і так припускає.
data-sa-commit — єдина кнопка, що зберігає
Позначте елемент, що зберігає форму: кнопку «Зберегти» або перемикач, який зберігається, щойно
рухається. Помічник вважає його наслідковим натисканням, хай би якою була операція, — і це
єдиний спосіб притримати для згоди перемикач, що сам зберігається, — а за політики auto саме
його він натискає після того, як пакет заповнень ліг.
- Рівно один на екран. З двома помічник питає, який, замість вгадувати.
- Працює на обгортці, але лише для кнопки чи посилання: позначений предок говорить за те, що
помічник натискає, і ніколи за те, у що він пише.
data-sa-commitна<form>не робить кожне поле точкою збереження. - Форма взагалі без кнопки збереження (автозбереження, живий пошук) не має точки згоди; зміни просто лягають. Якщо на такій сторінці це вас турбує, вимкніть там дії на сторінці.
Три політики натискань
Власник обирає одну на вкладці «Дії на сторінці» віджета, і сервер її забезпечує.
| Політика | Натискання в пакеті із заповненнями | Після пакета лише із заповнень |
|---|---|---|
off — Лише заповнення (без натискань) |
не натискається ніколи; заповнення лягають, натискання відкидається, і помічник про це каже | нічого |
confirm — Натискання з підтвердженням (за замовчуванням) |
притримується, і помічник питає | помічник каже, що не збережено, і питає, чи натиснути кнопку збереження |
auto — Зберігати автоматично |
натискається без питань | після заповнень натискається позначена data-sa-commit кнопка; без позначеної нічого не натискається |
auto — це не «без згоди»: власник дав її раз, у панелі, для власного сайту. Це для додатка,
користувачі якого очікують, що «Зберегти» станеться, а не для публічної форми.
Що помічник дізнається у відповідь
Результат пакета насамперед називає те, чого не сталося: відкинутий крок, притримане
натискання, поле, що вже мало це значення (unchanged), поле, попередній текст якого зник
(replaced), і що пакет додав на екран чи прибрав (нові рядки, нові елементи). Пакет, що лише
натискав вкладки, не лишає нічого для збереження, і про збереження не нагадують.
Власні кнопки позначеного списку
Усередині оголошеного списку (Списки й варіанти) кнопка
додавання позначена data-sa-add і натискається самим віджетом стільки разів, скільки потрібно
для номера рядка; delete рядка зберігає свою згоду, як будь-яке натискання.