Posted on 16. July 2024

The .NET MAUI Extension for Visual Studio Code is now Generally Available

Розширення .NET MAUI для Visual Studio Code тепер загальнодоступне


Сьогодні ми раді повідомити, що попереднього перегляду розширення .NET MAUI VS Code немає, і воно включає деякі довгоочікувані нові функції, зокрема XAML IntelliSense і Hot Reload!


Що таке розширення .NET MAUI?

Розширення .NET MAUI містить інструменти, необхідні для розробки програм .NET MAUI, у спрощений Visual Studio Code. Його створено на основі C# Dev Kit і розширення C#, які містять Solution Explorer, C# Hot Reload, потужний C# IntelliSense та багато іншого. Розширення .NET MAUI додає можливість орієнтуватися на мобільні та настільні пристрої, а також (з останніми версіями розширень) XAML IntelliSense та XAML Hot Reload, зберігаючи при цьому роботу з VS Code оптимізованою та простою.


Новий і покращений досвід редагування XAML

Попередня версія розширення .NET MAUI постачалася з базовим підсвічуванням синтаксису XAML і завершеннями, але це було далеко не повне враження, яке ми хотіли надати. Протягом останнього року ми модернізували наявну службу мови XAML у Visual Studio, запакували її та перенесли у VS Code для вашої розробки .NET MAUI. Це доповнення, яке також працює з Copilot, дає вам інтелектуальне автозаповнення, корисні підказки та безперебійну навігацію кодом під час створення інтерфейсів користувача.


https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2024/06/IntellisenseDemo-1.mp4?_=1 


Гаряче перезавантаження тут 🔥

Можливість редагувати свій код без перезапуску програми є однією з найпотужніших функцій продуктивності, які є у розробників .NET. З останньою версією тепер ви можете гаряче перезавантажувати редагування файлів C# і XAML у Visual Studio Code. XAML Hot Reload уже ввімкнено – просто редагуйте свій XAML під час роботи програми та дивіться, як зміни автоматично відображаються у вашому інтерфейсі користувача!

https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2024/06/XAML-hot-reload-1.mp4?_=2 


C# Hot Reload все ще перебуває в експериментальному стані, але ви можете ввімкнути його, відкривши VS Code Settings (CTRL/CMD + SHIFT + ,), знайшовши “hot reload” і встановивши прапорець “”[Experimental“ ] Вмикає «Hot Reload» під час налагодження».



Потім відредагуйте свій C# та збережіть або натисніть значок вогню на панелі інструментів налагодження, щоб застосувати зміни!



Почніть сьогодні

Сьогоднішній випуск є важливою віхою в нашій подорожі VS Code, але ми ще не закінчили! Ми продовжуватимемо прислухатися до ваших відгуків і працюватимемо над покращенням продуктивності, надійності та додаванням функцій, щоб зробити розробку вашої програми .NET MAUI більш оптимізованою. Щоб повідомити про помилку чи поділитися пропозицією, ви можете скористатися діалоговим вікном Help > Report Issue у VS Code. Так само, як C# і C# Dev Kit, ми будемо випускати щомісяця з щотижневим оновленням у попередньому каналі.

 

Щоб почати використовувати розширення, ви можете прочитати наш Посібник із початку роботи або завантажити розширення та виконати покрокове керівництво у VS Code!



Posted on 30. April 2024

Подорож до доступних програм: доступність клавіатури та .NET MAUI

Подорож до доступних програм: 

доступність клавіатури та .NET MAUI


Чи доступна клавіатура ваших додатків? Давайте перевіримо:


  1. Запустіть одну з ваших програм.

  2. Підключіть фізичну клавіатуру, якщо вона ще не підключена до вашого пристрою.

  3. Переміщайтеся у програмі так, як ви зазвичай це робите, і використовуйте для цього лише клавіатуру.

Як вам це вдалося? Чи було легко? Чи збігається це з вашим звичним досвідом навігації у додатку?


Забезпечення того, щоб користуватися додатком так само чудово, як і за допомогою клавіатури, є важливим для створення інклюзивного та доступного для всіх досвіду роботи з додатком.

Настанови з доступності веб-контенту (WCAG)

Щоб зрозуміти, що саме являє собою клавіатурна доступність, варто почати з Керівництва з доступності веб-контенту (WCAG).


WCAG – це набір технічних стандартів веб-доступності, на який часто посилаються і який поширюється на різні додатки та платформи за межами Інтернету. Він став глобальним стандартом і правовим орієнтиром і продовжує розвиватися разом з мінливим ландшафтом технологій.


Серед різних настанов є Guideline 2.1, яку часто не беруть до уваги, в якій йдеться про те, що розробники повинні «Зробити всю функціональність доступною з клавіатури».


Це включає в себе чотири критерії успіху:

Критерій успіху 2.1.1 Клавіатура

Вся функціональність контенту доступна через клавіатурний інтерфейс, не вимагаючи специфічного часу для окремих натискань клавіш, за винятком випадків, коли основна функція вимагає введення, яке залежить від шляху руху користувача, а не тільки від кінцевих точок.

Критерій успіху 2.1.2 Відсутність пастки клавіатури

Якщо фокус клавіатури можна перемістити на компонент сторінки за допомогою клавіатурного інтерфейсу, то фокус можна перемістити з цього компоненту за допомогою лише клавіатурного інтерфейсу, і, якщо для цього потрібно більше, ніж немодифіковані клавіші зі стрілками, табуляції або інші стандартні методи виходу, користувачеві надається інформація про метод переміщення фокусу.

Критерій успіху 2.1.3 Клавіатура (без винятків)

Вся функціональність контенту доступна через клавіатурний інтерфейс, не вимагаючи спеціального часу для окремих натискань клавіш.

Критерій успіху 2.1.4 Символьні комбінації клавіш

Якщо комбінація клавіш реалізована у контенті з використанням лише літер (включаючи великі та малі літери), розділових знаків, цифр або символів, то принаймні одна з наведених нижче ознак є істинною:


Вимкнути Існує механізм для вимкнення комбінації клавіш;

Змінити комбінацію клавіш Існує механізм для зміни комбінації клавіш, щоб додати до неї одну або кілька недрукованих клавіш клавіатури (наприклад, Ctrl, Alt);

Активна лише у фокусі Комбінація клавіш для компонента користувацького інтерфейсу активна лише тоді, коли на цьому компоненті є фокус.


Фундаментальне розуміння цих критеріїв допоможе вам розпочати розробку програм, доступних з клавіатури.

Доступ до клавіатури та .NET MAUI

Окрім інших міркувань, .NET MAUI було розроблено з метою полегшити розробку клавіатурного інтерфейсу. Отже, розробники, знайомі з поведінкою клавіатури Xamarin.Forms, помітили деякі зміни, які були зроблені для покращення доступності клавіатури в їхніх додатках.


Для того, щоб вся функціональність працювала через клавіатурний інтерфейс, важливо, щоб всі інтерактивні елементи управління були клавіатурно орієнтованими (могли отримувати фокус клавіатури) і клавіатурно навігаційними (могли переходити до них і з них за допомогою клавіатури). Це також включає в себе уникнення того, щоб невидимий вміст був доступний за допомогою клавіатури. Так само, як ми повинні очікувати, що видимі елементи керування будуть доступними для клавіатурного фокусу та навігації, ми повинні очікувати, що невидимі/неіснуючі елементи керування не будуть доступними для клавіатури або взагалі не будуть присутніми.


Щоб уникнути клавіатурних пасток, ми гарантуємо, що клавіатурна навігація можлива до всіх відповідних елементів керування у поточному поданні, всередині них та поза ними. Наприклад, якщо ви переміщуєтесь по екрану з декількома CollectionViews, .NET MAUI узгоджується зі стандартними очікуваннями клавіатурної доступності, дозволяючи вам легко переходити до будь-якого з CollectionViews та з нього за допомогою стандартних шаблонів клавіатурної навігації.


Тож як саме .NET MAUI дозволяє вам створювати клавіатурні інтерфейси з більшою легкістю? Ось 3 приклади:

1. Клавіатурна навігація на модальних сторінках

Однією з областей, в якій .NET MAUI навмисно враховує доступність клавіатури, є модальні сторінки. Коли з’являється модальна сторінка, як і для всіх інших сторінок, важливо переконатися, що все на ній доступно. Однак для модальних сторінок особливо важливо переконатися, що все, що знаходиться на основній сторінці, не доступне з клавіатури і не з’являється на модальній сторінці.


Коли з’являється модальна сторінка, фокус має бути на першому клавіатурному елементі керування на сторінці. Після цього весь вміст модальної сторінки має бути доступним, а всі інтерактивні елементи керування, які мають містити опцію виходу (зазвичай «Зберегти» або «Закрити») з модальної сторінки, мають бути сфокусовані на клавіатурі. Після виходу з модальної сторінки фокус має бути повернутий на основну сторінку, і перший елемент керування на основній сторінці повинен знову отримати фокус на клавіатурі.


Цю складність вирішує фреймворк .NET MAUI, тож ваші модальні сторінки будуть доступними для навігації одразу з коробки!

2. Фокусування/розфокусування клавіатури на Android

Під час розробки .NET MAUI ми дізналися ще одну річ, що неможливо «розфокусувати» запис на ранніх версіях Android. Якийсь елемент управління завжди повинен бути сфокусований. У Xamarin.Forms «розфокусувати» елемент можна було, встановивши фокус на макеті сторінки; на жаль, такий підхід створював серйозні проблеми з доступністю. З цих причин .NET MAUI не дозволяє таку недоступну поведінку за замовчуванням і наполегливо рекомендує використовувати інший підхід.


Мотивація використання «фокусування» і «розфокусування» часто пов’язана з показом і приховуванням клавіатури м’якого введення. Замість того, щоб маніпулювати фокусом для досягнення цієї мети, керуйте поведінкою клавіатури за допомогою нових SoftInputExtensions APIs

 

Наприклад:

Якщо SoftInputExtensions або інші альтернативні рішення не працюють для ваших потреб у фокусуванні клавіатури, команда .NET MAUI буде рада дізнатися більше про ваш сценарій. Будь ласка, поділіться з нами, щоб ми могли краще зрозуміти ваші потреби в розробці!


З огляду на це, у .NET 8 було введено додаткову властивість HideSoftInputOnTapped. Застосування цієї властивості дозволяє користувачам натискати на сторінку, щоб приховати клавіатуру м’якого введення, і ми рекомендуємо використовувати її лише у виняткових випадках.


3. Прискорювачі клавіатури

Як і у випадку з усіма чудовими, доступними рішеннями, проектування з урахуванням доступності означає проектування для всіх. Це особливо стосується доступності клавіатури, де ввімкнення витонченої поведінки клавіатури приносить користь усім користувачам, від тих, хто використовує клавіатуру як основний режим введення, до досвідчених користувачів, які полюбляють використовувати клавіатурні скорочення, також відомі як клавіатурні прискорювачі.


У .NET MAUI ми створили рішення для клавіатурних прискорювачів. За допомогою клавіатурних прискорювачів усі користувачі клавіатури та робочого столу можуть використовувати комбінації клавіш для активації команд пунктів меню!

 

Як описано в документації .NET MAUI, ось як можна почати додавати клавіатурні прискорювачі до MenuFlyoutItem в XAML або C#:

Обов’язково включіть клавіатурні прискорювачі у свій додаток .NET MAUI, якщо ви цього ще не зробили, і застосуйте свої нові знання з Критерію Успіху WCAG 2.1.4!

Подорож до доступних додатків

З інтерфейсом .NET MAUI ви можете створювати додатки, повністю доступні з клавіатури і позбавлені клавіатурних пасток, і зробити це простіше, ніж будь-коли раніше.


Якщо ви вперше читаєте «Подорож до доступних додатків», ласкаво просимо! Не забудьте переглянути мої попередні публікації в блозі, щоб дізнатися більше про створення доступних додатків і про те, як .NET MAUI полегшує цей процес.


Ви можете отримати більше інформації про інші покращення доступності клавіатури, зроблені в .NET MAUI, переглянувши останню публікацію в блозі про змістовне впорядкування контенту та рішення про видалення індексу вкладок.


.NET MAUI допомагає вам створювати доступні програми простіше, ніж будь-коли раніше. Як завжди, дайте нам знати, як ми можемо зробити це ще простіше для вас!