Novinky v přístupnosti v rozhraní .NET Framework
Cílem rozhraní .NET Framework je zajistit, aby aplikace byly pro vaše uživatele přístupnější. Funkce přístupnosti umožňují aplikaci poskytovat uživatelům technologie usnadnění vhodné prostředí. Počínaje rozhraním .NET Framework 4.7.1 obsahuje rozhraní .NET Framework velké množství vylepšení přístupnosti, která vývojářům umožňují vytvářet přístupné aplikace.
Přepínače přístupnosti
Aplikaci můžete nakonfigurovat tak, aby se přihlásila k funkcím přístupnosti, pokud cílí na .NET Framework 4.7 nebo starší verzi, ale běží na rozhraní .NET Framework 4.7.1 nebo novějším. Pokud cílí na rozhraní .NET Framework 4.7.1 nebo novější, můžete aplikaci také nakonfigurovat tak, aby používala starší funkce (a nevyužívá funkce přístupnosti). Každá verze rozhraní .NET Framework, která obsahuje funkce přístupnosti, má přepínač přístupnosti specifický pro verzi, který přidáte do <AppContextSwitchOverrides>
elementu v <runtime>
části konfiguračního souboru aplikace. Podporované přepínače jsou následující:
Verze | Přepínač |
---|---|
.NET Framework 4.7.1 | Switch.UseLegacyAccessibilityFeatures |
.NET Framework 4.7.2 | Switch.UseLegacyAccessibilityFeatures.2 |
.NET Framework 4.8 | Switch.UseLegacyAccessibilityFeatures.3 |
11. srpna 2020 KB4569746 kumulativní aktualizace pro rozhraní .NET Framework 4.8 | Switch.UseLegacyAccessibilityFeatures.4 |
.NET Framework 4.8.1 | Switch.UseLegacyAccessibilityFeatures.5 |
Využití výhod vylepšení přístupnosti
Nové funkce přístupnosti jsou ve výchozím nastavení povolené pro aplikace, které cílí na rozhraní .NET Framework 4.7.1 nebo novější. Kromě toho aplikace, které cílí na starší verzi rozhraní .NET Framework, ale jsou spuštěny v rozhraní .NET Framework 4.7.1 nebo novější, mohou vyjádřit nesouhlas s chováním starší verze přístupnosti (a tím využít vylepšení přístupnosti) přidáním přepínačů do <AppContextSwitchOverrides>
prvku v <runtime>
části konfiguračního souboru aplikace a nastavením jejich hodnoty na false
. Následující fragment kódu ukazuje, jak se přihlásit k vylepšením přístupnosti, která byla zavedena v rozhraní .NET Framework 4.7.1:
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of key1=true|false;key2=true|false -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" />
</runtime>
Pokud se rozhodnete přihlásit k funkcím přístupnosti v novější verzi rozhraní .NET Framework, musíte také výslovně vyjádřit výslovný souhlas s funkcemi z dřívějších verzí. Pokud chcete aplikaci nakonfigurovat tak, aby využívala vylepšení přístupnosti v rozhraní .NET Framework 4.7.1 a 4.7.2, přidejte následující <AppContextSwitchOverrides>
prvek:
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of key1=true|false;key2=true|false -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false" />
</runtime>
Pokud chcete aplikaci nakonfigurovat tak, aby využívala vylepšení přístupnosti v rozhraní .NET Framework 4.7.1, 4.7.2, 4.8 a kumulativní aktualizaci ze srpna 2020 pro rozhraní .NET Framework 4.8, přidejte následující <AppContextSwitchOverrides>
prvek:
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of key1=true|false;key2=true|false -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.UseLegacyAccessibilityFeatures.4=false"/>
</runtime>
Obnovení staršího chování
Aplikace, které cílí na verze rozhraní .NET Framework počínaje verzí 4.7.1, mohou zakázat funkce přístupnosti přidáním přepínačů do <AppContextSwitchOverrides>
prvku v <runtime>
části konfiguračního souboru aplikace a nastavením jejich hodnoty na true
. Například následující konfigurace se odhlásí z funkcí přístupnosti zavedených v rozhraní .NET Framework 4.7.2:
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of key1=true|false;key2=true|false -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures.2=true" />
</runtime>
Novinky v přístupnosti v rozhraní .NET Framework 4.8.1
.NET Framework 4.8.1 obsahuje nové funkce přístupnosti v následujících oblastech:
Windows Forms
Přidání a vylepšení reprezentací UIA
Před rozhraním .NET Framework 4.8.1 chybí podpora model Windows Forms pro řadu vzorů UIA pro podporu technologie usnadnění pro interakci s aplikacemi. Tento nedostatek může způsobit, že Program Předčítání nebo jiné čtečky obrazovky hlásí neúplné nebo nesprávné informace. Může také ovlivnit důležité funkce, jako je přesunutí kurzoru přes text v ovládacím TextBox prvku. V rozhraní .NET Framework 4.8.1 byly implementovány všechny požadované vzory pro běžné ovládací prvky. Tato nová funkce poskytuje uživatelům technologie usnadnění mnohem bohatší prostředí interakce s aplikacemi.
- Přidání podpory pro model rozbalení nebo sbalení UIA do DateTimePicker ovládacího prvku
- Přidání podpory UIA do MonthCalendar ovládacího prvku Nástroje pro technologie usnadnění, jako je Předčítání, teď můžou procházet jednotlivá data v ovládacím prvku.
- Implementovaná podpora textového vzoru pro všechny textové ovládací prvky, včetně TextBoxovládacích prvků , MaskedTextBox, PropertyGrid upravit ovládací prvek , DataGridViewTextBoxCellToolStripTextBoxa DomainUpDown ovládacích prvků.
- ToolTip nyní se řídí pokyny WCAG2.1, aby byly trvalé, zavřené a najeté myší ve Windows 11. Změny chování popisu jsou omezené na systémy Windows 11, které mají nainstalované rozhraní .NET Framework 4.8.1, a platí pouze pro aplikace, u kterých nebyl pro popis nastavený časový limit. Popisy, které se uchovávají, je možné zavřít klávesou Esc nebo klávesou Ctrl nebo přechodem na ovládací prvek s jinou sadou popisků.
Různé opravy chyb pro stávající funkce přístupnosti
- Program Předčítání se teď může soustředit na prázdný DataGridView ovládací prvek.
- Vyřešili jsme problém, který způsoboval, že čtečky obrazovky počítaly skryté sloupce při oznamování počtu sloupců v ovládacím DataGridView prvku.
- Vyřešili jsme problém, který způsoboval DataGridView ignorování nastavení písma nastaveného v
DataGridviewCellStyle
případě, že podkladový formulář mělFont
vlastnost, která se liší odDefaultFont
. AccessibleName
Aktualizace vlastnosti interních DataGridView posuvníků ovládacího prvku, aby se odebral text "Posuvník".- Opravili jsme barvu
DataGridViewLinkCell
buňky, když je buňka vybraná. - Opravili jsme problém s vlastními DataGridView ovládacími prvky, kdy nebyly
ControlType
pro vlastní DataGridViewCell prvky k dispozici neboLocalizedControlType
nebyly k dispozici. - Aktualizace poměru světelnosti na 3,5:1 pro ToolStripButton ovládací prvky, které jsou nastaveny
ToolStripRenderMode
naSystem
. - Vylepšená navigace pomocí klávesnice, ToolStrip když je
ToolStripComboBox
prvek typu. - Aktualizovali jsme barvu pozadí v režimu vysokého kontrastu ToolStripButton .
- Zajistili jsme, že je k dispozici ohraničující obdélník pro technologie usnadnění pro ToolStripSeparatorzařízení .
- Opravili jsme problém, který mohl způsobit chybové ukončení čtečky obrazovky JAWS při čtení PropertyGrid ovládacího prvku.
- Ujistili jste se, že se strom PropertyGrid hierarchie UIA ovládacího prvku aktualizuje, když se rozbalí složitá položka
Font
. Také se ujistěte, že se strom správně aktualizuje, když je položka sbalená a už není viditelná. - PropertyGrid kategorie nyní mají lokalizovaný typ
PropertyGrid category
ovládacího prvku . - Opravili jsme problém, ComboBox který způsoboval chybové ukončení aplikace v části Přístupnost Přehledy pro Windows.
- Aktualizovali jsme barvu ohraničení, Button aby byla ve výchozích barvách kontrastnější.
- Povolili jsme nástroje technologie usnadnění pro přístup k
ControlBox
tlačítkům maximalizované podřízené formuláře MDI. - Vlastnost
AccessibleName
DomainUpDown ovládacího prvku má novou výchozí hodnotu prázdného řetězce. Prázdný řetězec doporučí vývojářům, aby místo přijetí předchozí neprázdné výchozí hodnoty vytvořili smysluplný název. - Aktualizovali
AccessibleName
jsme vlastnost tlačítka Tisk z PrintPreviewDialog tlačítka Tisk na Tisk, aby se zabránilo redundanci, když čtečky obrazovky oznamují ovládací prvek a jeho typ. - Aktualizace ovládacích prvků seznamu UIA pro odebrání prázdného prvku seznamu, když PropertyGrid je buňka typu
ComboBox
zavřená a už není viditelná.
Windows Presentation Foundation (WPF)
Vylepšení zpracování popisů přístupnosti
V této verzi wpf vylepšil prostředí tím, že zajistilo, že popis v aktuálním okně lze snadno zavřít pomocí klávesy Esc, klávesy Ctrl (samostatně) nebo kombinace Ctrl+Shift+F10. Rozsah klávesy Esc byl v této verzi omezen tak, aby platil pouze pro aktuální okno, kdy se dříve použil na jakýkoli otevřený popis v aplikaci. Ve výchozím nastavení budou popisy WPF postupovat podle pokynů WCAG2.1, aby byly trvalé, zavřené a najeté myší.
Novinky v přístupnosti v kumulativní aktualizaci z 11. srpna 2020 pro rozhraní .NET Framework 4.8
Kumulativní aktualizace z 11. srpna 2020 KB4569746 pro rozhraní .NET Framework 4.8 obsahuje nové funkce přístupnosti v model Windows Forms:
Řeší problém s oznámením
PropertyGrid
položek ovládacích prvků a rozbaleným nebo sbaleným stavem kategorií čtečkami obrazovky.Aktualizace přístupných vzorů
PropertyGrid
ovládacího prvku a jeho vnitřních prvků.Aktualizace přístupných názvů vnitřních
PropertyGrid
prvků ovládacího prvku, aby čtečky obrazovky správně oznamovali.Adresy ohraničující obdélník přístupné vlastnosti ovládacích
PropertyGridView
prvků.Umožňuje čtečkám obrazovky správně oznamovat rozbalený nebo sbalený stav buněk se seznamem
DataGridView
.
Novinky v přístupnosti v rozhraní .NET Framework 4.8
.NET Framework 4.8 obsahuje nové funkce přístupnosti v následujících oblastech:
Windows Forms
V rozhraní .NET Framework 4.8 model Windows Forms přidává podporu událostí liveregion a oznámení do mnoha běžně používaných ovládacích prvků. Přidává také podporu nástroje Tipy když uživatel přejde na ovládací prvek pomocí klávesnice.
Podpora uiA LiveRegions v popiscích a statusStrips
UIA LiveRegions umožňuje vývojářům aplikací upozornit čtečky obrazovky na změnu textu v ovládacím prvku, který se nachází mimo umístění, kde uživatel pracuje. To je užitečné například pro StatusStrip ovládací prvek, který zobrazuje stav připojení. Pokud se připojení přeruší a stav se změní, může vývojář upozornit čtečku obrazovky.
Počínaje rozhraním .NET Framework 4.8 model Windows Forms implementuje rozhraní UIA LiveRegions pro ovládací Label prvky i StatusStrip ovládací prvky. Například následující kód používá LiveRegion v ovládacím Label prvku s názvem label1
:
public Form1()
{
InitializeComponent();
label1.AutomationLiveSetting = AutomationLiveSetting.Polite;
}
…
Label1.Text = "Ready!";
Program Předčítání oznámí "Připraveno" bez ohledu na to, kde uživatel pracuje s aplikací.
Můžete také implementovat svoji UserControl oblast jako LiveRegion:
using System;
using System.Windows.Forms;
using System.Windows.Forms.Automation;
namespace WindowsFormsApplication
{
public partial class UserControl1 : UserControl, IAutomationLiveRegion
{
public UserControl1()
{
InitializeComponent();
}
public AutomationLiveSetting AutomationLiveSetting { get; set; }
private AutomationLiveSetting IAutomationLiveRegion.GetLiveSetting()
{
return this.AutomationLiveSetting;
}
protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);
AutomationNotifications.UiaRaiseLiveRegionChangedEvent(this.AccessibilityObject);
}
}
}
Události oznámení UIA
Událost oznámení UIA, která byla představena ve Windows 10 Fall Creators Update, umožňuje vaší aplikaci vyvolat událost UIA, což vede k tomu, že Program Předčítání jednoduše vytvoří oznámení na základě textu, který zadáte s událostí, aniž by musela mít odpovídající ovládací prvek v uživatelském rozhraní. V některých scénářích je to jednoduchý způsob, jak výrazně zlepšit přístupnost aplikace. In může být také užitečné informovat o průběhu některého procesu, který může trvat dlouhou dobu. Další informace o událostech oznámení UIA najdete v tématu Může vaše desktopová aplikace využívat novou událost oznámení uživatelského rozhraní?.
Následující příklad vyvolá událost Oznámení:
MethodInfo raiseMethod = typeof(AccessibleObject).GetMethod("RaiseAutomationNotification");
if (raiseMethod != null) {
raiseMethod.Invoke(progressBar1.AccessibilityObject, new object[3] {/*Other*/ 4, /*All*/ 2, "The progress is 50%." });
}
Nástroj Tipy při přístupu pomocí klávesnice
V aplikacích, které cílí na rozhraní .NET Framework 4.7.2 a starší verze, lze popis ovládacího prvku aktivovat pouze tak, že do ovládacího prvku přesune ukazatel myši. Od rozhraní .NET Framework 4.8 může uživatel klávesnice aktivovat popis ovládacího prvku tak, že ovládací prvek zaměří pomocí klávesy Tab nebo kláves se šipkami s modifikačními klávesami nebo bez. Toto konkrétní vylepšení přístupnosti vyžaduje další přepínač AppContext:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides values are in the form of key1=true|false;key2=true|false -->
<!-- Please note that disabling Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2 and Switch.UseLegacyAccessibilityFeatures.3 is required to disable Switch.System.Windows.Forms.UseLegacyToolTipDisplay -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false"/>
</runtime>
</configuration>
Následující obrázek znázorňuje popis, když uživatel vybral tlačítko s klávesnicí.
Windows Presentation Foundation (WPF)
Počínaje rozhraním .NET Framework 4.8 obsahuje WPF řadu vylepšení přístupnosti.
Předčítání obrazovky už neoznamuje prvky sbalenou nebo skrytou viditelností
Čtečka obrazovky už čtečku obrazovky nehlásí prvky s sbalenou nebo skrytou viditelností. Uživatelská rozhraní obsahující prvky s viditelností Visibility.Collapsed nebo Visibility.Hidden můžou být chybně reprezentována čtečkami obrazovky, pokud jsou uživateli oznámeny. Počínaje rozhraním .NET Framework 4.8 už WPF neobsahuje sbalené ani skryté prvky ve stromovém zobrazení ovládacího prvku UIAutomation, takže čtečky obrazovky už tyto prvky neoznamují.
SelectionTextBrush vlastnost pro použití s jiným než adornerem založeným na výběru textu
V rozhraní .NET Framework 4.7.2 přidal WPF možnost kreslit TextBox a PasswordBox výběr textu bez použití vrstvy Adorner. Barva popředí vybraného textu v tomto scénáři byla diktována uživatelem SystemColors.HighlightTextBrush.
Rozhraní .NET Framework 4.8 přidá novou vlastnost, SelectionTextBrush
která vývojářům umožňuje vybrat konkrétní štětec pro vybraný text při použití výběru textu založeného na adorneru. Tato vlastnost funguje pouze na TextBoxBase-odvozených ovládacích prvcích a ovládacích PasswordBox prvcích v aplikacích WPF s povoleným výběrem textu, který není založený na Adorneru. Na ovládacím RichTextBox prvku nefunguje. Pokud není povolen výběr textu, který není založený na Adorneru, bude tato vlastnost ignorována.
Pokud chcete tuto vlastnost použít, jednoduše ji přidejte do kódu XAML a použijte příslušný štětec nebo vazbu. Výsledný výběr textu vypadá takto:
Pomocí vlastností SelectionBrush
a SelectionTextBrush
vlastností můžete vygenerovat libovolnou kombinaci barev pozadí a popředí, kterou považujete za vhodné.
Podpora vlastnosti UIAutomation ControllerFor
Vlastnost UIAutomation ControllerFor
vrací pole prvků automatizace, které jsou manipulovány prvkem automatizace, který podporuje tuto vlastnost. Tato vlastnost se běžně používá pro automatické návrhy přístupnosti. ControllerFor
používá se, když prvek automatizace ovlivňuje jeden nebo více segmentů uživatelského rozhraní aplikace nebo desktopu. Jinak je obtížné přidružit vliv řídicí operace k prvkům uživatelského rozhraní. Tato funkce přidává možnost ovládacích prvků poskytovat hodnotu vlastnosti ControllerFor
.
.NET Framework 4.8 přidá novou virtuální metodu . GetControlledPeersCore() Chcete-li poskytnout hodnotu vlastnosti ControllerFor
, jednoduše přepsat tuto metodu a vrátit List<AutomationPeer>
pro ovládací prvky manipulované tímto AutomationPeerzpůsobem:
public class AutoSuggestTextBox: TextBox
{
protected override AutomationPeer OnCreateAutomationPeer()
{
return new AutoSuggestTextBoxAutomationPeer(this);
}
public ListBox SuggestionListBox;
}
internal class AutoSuggestTextBoxAutomationPeer : TextBoxAutomationPeer
{
public AutoSuggestTextBoxAutomationPeer(AutoSuggestTextBox owner) : base(owner)
{
}
protected override List<AutomationPeer> GetControlledPeersCore()
{
List<AutomationPeer> controlledPeers = new List<AutomationPeer>();
AutoSuggestTextBox owner = Owner as AutoSuggestTextBox;
controlledPeers.Add(UIElementAutomationPeer.CreatePeerForElement(owner.SuggestionListBox));
return controlledPeers;
}
}
Popisy pro přístup pomocí klávesnice
V rozhraní .NET Framework 4.7.2 a starších verzích se popisy zobrazují jenom v případě, že uživatel najede myší na ovládací prvek. V rozhraní .NET Framework 4.8 se popisy zobrazují také na fokusu klávesnice a také pomocí klávesové zkratky.
Aby bylo možné tuto funkci povolit, musí aplikace cílit na rozhraní .NET Framework 4.8 nebo vyjádřit výslovný souhlas pomocí Switch.UseLegacyAccessibilityFeatures.3
přepínačů a Switch.UseLegacyToolTipDisplay
přepínačů AppContext . Následuje ukázkový konfigurační soubor aplikace:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.UseLegacyToolTipDisplay=false" />
</runtime>
</configuration>
Po povolení se zobrazí všechny ovládací prvky, které obsahují popisek, jakmile ovládací prvek obdrží fokus klávesnice. Popis můžete zavřít v průběhu času nebo když se fokus klávesnice změní. Uživatelé také můžou popis zavřít ručně pomocí nové klávesové zkratky Ctrl+Shift+F10. Jakmile popis zavřete, můžete ho znovu zobrazit pomocí stejné klávesové zkratky.
Poznámka:
Popisy pásu karet na Ribbon ovládacích prvcích se nezobrazují na fokusu klávesnice. Zobrazují se jenom přes klávesovou zkratku.
Přidání podpory vlastností SizeOfSet a PositionInSet UIAutomation
Windows 10 zavedl dvě nové vlastnosti UIAutomation a SizeOfSet
PositionInSet
, které jsou používány aplikacemi k popisu počtu položek v sadě. Klientské aplikace UIAutomation, jako jsou čtečky obrazovky, pak mohou dotazovat aplikaci na tyto vlastnosti a oznámit přesnou reprezentaci uživatelského rozhraní aplikace.
Počínaje rozhraním .NET Framework 4.8 wpF zveřejňuje tyto dvě vlastnosti pro UIAutomation v aplikacích WPF. Toho lze dosáhnout dvěma způsoby:
Pomocí vlastností závislostí.
WPF přidá dvě nové vlastnosti AutomationProperties.SizeOfSet závislosti a AutomationProperties.PositionInSet. Vývojář může k nastavení hodnot použít XAML:
<Button AutomationProperties.SizeOfSet="3" AutomationProperties.PositionInSet="1">Button 1</Button> <Button AutomationProperties.SizeOfSet="3" AutomationProperties.PositionInSet="2">Button 2</Button> <Button AutomationProperties.SizeOfSet="3" AutomationProperties.PositionInSet="3">Button 3</Button>
Přepsáním virtuálních metod AutomationPeer.
Do GetSizeOfSetCore() třídy byly přidány
AutomationPeer
virtuální GetPositionInSetCore() metody. Vývojář může poskytnout hodnoty proSizeOfSet
tyto metody aPositionInSet
přepsáním těchto metod, jak je znázorněno v následujícím příkladu:public class MyButtonAutomationPeer : ButtonAutomationPeer { protected override int GetSizeOfSetCore() { // Call into your own logic to provide a value for SizeOfSet return CalculateSizeOfSet(); } protected override int GetPositionInSetCore() { // Call into your own logic to provide a value for PositionInSet return CalculatePositionInSet(); } }
Položky v ItemsControl instancích navíc poskytují hodnotu těchto vlastností automaticky bez další akce od vývojáře. ItemsControl Pokud je skupina seskupována, je kolekce skupin reprezentována jako sada a každá skupina se počítá jako samostatná sada, přičemž každá položka uvnitř této skupiny poskytuje její pozici uvnitř této skupiny a také velikost skupiny. Na automatické hodnoty nemá virtualizace vliv. I v případě, že položka není dosažena, je stále počítána do celkové velikosti sady a ovlivňuje pozici v sadě jejích položek na stejné straně.
Automatické hodnoty jsou poskytovány pouze v případě, že aplikace cílí na rozhraní .NET Framework 4.8. U aplikací, které cílí na starší verzi rozhraní .NET Framework, můžete nastavit Switch.UseLegacyAccessibilityFeatures.3
přepínač AppContext, jak je znázorněno v následujícím souboru App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false" />
</runtime>
</configuration>
Návrhář pracovních postupů Windows Workflow Foundation (WF)
Návrhář pracovního postupu obsahuje následující změny v rozhraní .NET Framework 4.8:
Uživatelé používající Předčítání uvidí vylepšení v popiscích případu FlowSwitch.
Uživatelé používající Předčítání uvidí vylepšení v popisech tlačítek.
Uživatelé, kteří zvolí motivy s vysokým kontrastem, uvidí vylepšení viditelnosti Návrháře pracovního postupu a jeho ovládacích prvků, jako jsou lepší kontrastní poměry mezi prvky a znatelnými poli výběru používanými pro prvky fokusu.
Pokud vaše aplikace cílí na rozhraní .NET Framework 4.7.2 nebo starší verzi, můžete se k těmto změnám přihlásit nastavením Switch.UseLegacyAccessibilityFeatures.3
přepínače AppContext v false
konfiguračním souboru aplikace. Další informace najdete v části Využití výhod vylepšení přístupnosti v tomto článku.
Novinky v přístupnosti v rozhraní .NET Framework 4.7.2
.NET Framework 4.7.2 obsahuje nové funkce přístupnosti v následujících oblastech:
Windows Forms
Barvy definované operačním systémem v motivech s vysokým kontrastem
Počínaje rozhraním .NET Framework 4.7.2 model Windows Forms používá barvy definované operačním systémem v motivech s vysokým kontrastem. To má vliv na následující ovládací prvky:
Šipka ToolStripDropDownButton rozevíracího seznamu ovládacího prvku
Ovládací Buttonprvky a CheckBox ovládací prvky s nastaveným parametrem FlatStyleFlatStyle.Flat nebo FlatStyle.Popup. RadioButton Dříve nebyly vybrané barvy textu a pozadí kontrastní a byly obtížně čitelné.
Ovládací prvky obsažené v objektu GroupBox , který má jeho Enabled vlastnost nastavena na
false
.ToolStripButtonOvládací prvky , ToolStripComboBoxa ToolStripDropDownButton ovládací prvky, které mají zvýšenou svítivost kontrastní poměr v režimu vysoký kontrast.
Vlastnost LinkColor objektu DataGridViewLinkCell.
Vylepšení Předčítání
Počínaje rozhraním .NET Framework 4.7.2 se podpora Předčítání vylepšuje následujícím způsobem:
Oznamuje hodnotu ToolStripMenuItem.ShortcutKeys vlastnosti při oznámení textu objektu ToolStripMenuItem.
Označuje, kdy ToolStripMenuItem má Enabled vlastnost nastavena na
false
.Poskytuje zpětnou vazbu o stavu zaškrtávacího políčka, když je vlastnost nastavena ListView.CheckBoxes na
true
hodnotu .Pořadí fokusu v režimu procházení předčítání je konzistentní s vizuálním pořadím ovládacích prvků v dialogovém okně pro stažení ClickOnce.
Vylepšení DataGridView
Počínaje rozhraním .NET Framework 4.7.2 zavedl ovládací DataGridView prvek následující vylepšení přístupnosti:
Řádky lze řadit pomocí klávesnice. Uživatel může použít klávesu F3 k seřazení podle aktuálního sloupce.
Šířku sloupce aktuální buňky můžete zvětšit nebo zmenšit pomocí + kláves Se šipkou vlevo nebo vpravo.
Když je nastavená DataGridView.SelectionModeDataGridViewSelectionMode.FullRowSelecthodnota , záhlaví sloupce změní barvu tak, aby označí aktuální sloupec jako karty uživatelů přes buňky v aktuálním řádku.
Vlastnost AccessibleObject.ParentSystem.Windows.Forms.DataGridViewLinkCell.DataGridViewLinkCellAccessibleObject vrátí správný nadřazený ovládací prvek.
Vylepšené vizuální pomůcky
- CheckBox Ovládací RadioButton prvky s prázdnou Text vlastností zobrazí indikátor fokusu, když dostanou fokus.
Vylepšená podpora mřížky vlastností
Podřízené PropertyGrid elementy ovládacího prvku nyní vrací
true
pro IsReadOnlyProperty vlastnost pouze v případě, že PropertyGrid element je povolen.Podřízené PropertyGrid prvky ovládacího prvku vrací
false
pro IsEnabledProperty vlastnost pouze v případě, že PropertyGrid element lze změnit uživatelem.
Vylepšená navigace pomocí klávesnice
- Ovládací ToolStripButton prvek umožňuje fokus, pokud je uvnitř ToolStripPanel objektu, který má vlastnost nastavenou TabStop na
true
Windows Presentation Foundation (WPF)
Změny ovládacích prvků CheckBox a RadioButton
V rozhraní .NET Framework 4.7.1 a starších verzích mají wpF System.Windows.Controls.CheckBox a System.Windows.Controls.RadioButton ovládací prvky nekonzistentní a v klasických a vysoce kontrastních motivech nesprávné vizuály fokusu. K těmto problémům dochází v případech, kdy ovládací prvky nemají nastavenou žádnou sadu obsahu. Díky tomu může být přechod mezi motivy matoucí a vizuál fokusu obtížně vidět.
V rozhraní .NET Framework 4.7.2 jsou teď tyto vizuály konzistentnější napříč motivy a snadněji viditelné v klasických a vysoce kontrastních motivech.
Ovládací prvky WinForms hostované v aplikaci WPF
U ovládacího prvku WinForms hostovaného v aplikaci WPF v rozhraní .NET Framework 4.7.1 a starších verzích se uživatelům nepodařilo vysunutí z vrstvy WinForms v případě, že první nebo poslední ovládací prvek v této vrstvě je ovládací prvek WPF ElementHost . V rozhraní .NET Framework 4.7.2 teď uživatelé můžou tabulátorovat z vrstvy WinForms.
Automatizované aplikace, které se spoléhají na zaměření, však nemusí vrstvu WinForms fungovat podle očekávání.
Novinky v přístupnosti v rozhraní .NET Framework 4.7.1
.NET Framework 4.7.1 obsahuje nové funkce přístupnosti v následujících oblastech:
Windows Presentation Foundation (WPF)
Vylepšení čtečky obrazovky
Pokud jsou povolená vylepšení přístupnosti, rozhraní .NET Framework 4.7.1 obsahuje následující vylepšení, která ovlivňují čtečky obrazovky:
V rozhraní .NET Framework 4.7 a starších verzích Expander čtečky obrazovky oznamovaly ovládací prvky jako tlačítka. Počínaje rozhraním .NET Framework 4.7.1 jsou správně oznámeny jako rozbalitelné nebo sbalitelné skupiny.
V rozhraní .NET Framework 4.7 a starších verzích DataGridCell čtečky obrazovky oznamovaly ovládací prvky jako vlastní. Počínaje rozhraním .NET Framework 4.7.1 jsou nyní správně oznámeny jako buňka datové mřížky (lokalizovaná).
Počínaje rozhraním .NET Framework 4.7.1 čtečky obrazovky oznámí název upravitelného ComboBoxsouboru .
V rozhraní .NET Framework 4.7 a starších verzích PasswordBox byly ovládací prvky oznámeny jako "žádná položka v zobrazení" nebo jinak nesprávné chování. Tento problém je opravený od rozhraní .NET Framework 4.7.1.
Podpora uiAutomation LiveRegion
Čtečky obrazovky, jako je Předčítání, pomáhají uživatelům číst obsah uživatelského rozhraní aplikace, obvykle výstupem textového na řeč obsahu uživatelského rozhraní, který má fokus. Pokud se ale prvek uživatelského rozhraní změní a fokus nemá, nemusí být uživatel upozorněn a může chybět důležité informace. Živé oblasti se zaměřují na řešení tohoto problému. Vývojář je může použít k informování čtečky obrazovky nebo jakéhokoli jiného klienta UIAutomation, že došlo k důležité změně prvku uživatelského rozhraní. Čtečka obrazovky pak může rozhodnout, jak a kdy uživatele o této změně informovat.
Pro podporu živých oblastí byly do WPF přidána následující rozhraní API:
AutomationElementIdentifiers.LiveRegionChangedEvent A AutomationElementIdentifiers.LiveSettingProperty pole, které identifikují LiveSetting vlastnost a LiveRegionChanged událost. Dají se nastavit pomocí XAML.
Vlastnost AutomationProperties.LiveSetting připojená, která informuje čtečku obrazovky o důležitosti změny uživatelského rozhraní pro uživatele.
Vlastnost AutomationProperties.LiveSettingProperty , která identifikuje AutomationProperties.LiveSetting připojenou vlastnost.
Metoda AutomationPeer.GetLiveSettingCore , kterou lze přepsat za účelem poskytnutí hodnoty LiveSetting .
MetodyAutomationProperties.GetLiveSetting, které získávají a nastavily hodnotu LiveSetting.AutomationProperties.SetLiveSetting
Výčet System.Windows.Automation.AutomationLiveSetting , který definuje následující možné hodnoty LiveSetting :
AutomationLiveSetting.Off. Prvek neodesílá oznámení, pokud se změnil obsah živé oblasti.
AutomationLiveSetting.Polite. Prvek odesílá nepřerušující oznámení, pokud se změnil obsah živé oblasti.
AutomationLiveSetting.Assertive. Prvek odesílá přerušující oznámení, pokud se změnil obsah živé oblasti.
LiveRegion můžete vytvořit nastavením AutomationProperties.LiveSetting vlastnost elementu zájmu, jak je znázorněno v následujícím příkladu:
<TextBlock Name="myTextBlock" AutomationProperties.LiveSetting="Assertive">announcement</TextBlock>
Když se data v živé oblasti změní a potřebujete informovat čtečku obrazovky, explicitně vyvoláte událost, jak je znázorněno v následující ukázce.
var peer = FrameworkElementAutomationPeer.FromElement(myTextBlock);
peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged);
Dim peer = FrameworkElementAutomationPeer.FromElement(myTextBlock)
peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged)
Vysoký kontrast
Počínaje rozhraním .NET Framework 4.7.1 byla vylepšení vysokého kontrastu provedena u různých ovládacích prvků WPF. Teď jsou viditelné, když HighContrast je motiv nastavený. Tady jsou některé z nich:
Ovládací prvek Expander
Vizuál fokusu Expander pro ovládací prvek je teď viditelný. Vizuály klávesnice pro ComboBoxListBoxRadioButton a ovládací prvky jsou viditelné také. Příklad:
Před:
Po:
CheckBox a RadioButton ovládací prvky
Text v ovládacích CheckBoxRadioButton prvcích je teď přehlednější, když je vybraný v motivech s vysokým kontrastem. Příklad:
Před:
Po:
Ovládací prvek ComboBox
Počínaje rozhraním .NET Framework 4.7.1 je ohraničení zakázaného ovládacího prvku stejná barva jako zakázaný ComboBox text. Příklad:
Před:
Po:
Zakázaná a prioritní tlačítka navíc používají správnou barvu motivu.
Před:
Po:
Nakonec v rozhraní .NET Framework 4.7 a starších verzích nastavujte ComboBox styl ovládacího prvku tak, aby
Toolbar.ComboBoxStyleKey
šipka rozevíracího seznamu byla neviditelná. Tento problém je opravený od rozhraní .NET Framework 4.7.1. Příklad:Před:
Po:
Ovládací prvek DataGrid
Počínaje rozhraním .NET Framework 4.7.1 teď šipka indikátoru řazení v DataGrid ovládacích prvcích používá správné barvy motivu. Příklad:
Před:
Po:
Kromě toho v rozhraní .NET Framework 4.7 a starších verzích se výchozí styl odkazu změnil na nesprávnou barvu myši v režimech vysokého kontrastu. Tento problém je vyřešen od rozhraní .NET Framework 4.7.1. DataGrid Podobně sloupce zaškrtávacích políček používají očekávané barvy pro zpětnou vazbu fokusu klávesnice počínaje rozhraním .NET Framework 4.7.1.
Před:
Po:
Další informace o vylepšení přístupnosti WPF v rozhraní .NET Framework 4.7.1 naleznete v tématu Vylepšení přístupnosti wpF.
vylepšení přístupnosti model Windows Forms
V rozhraní .NET Framework 4.7.1 model Windows Forms (WinForms) zahrnuje změny přístupnosti v následujících oblastech.
Vylepšené zobrazení v režimu Vysoký kontrast
Počínaje rozhraním .NET Framework 4.7.1 nabízejí různé ovládací prvky WinForms vylepšené vykreslování v režimech HighContrast dostupných v operačním systému. Systém Windows 10 změnil hodnoty některých barev systému s vysokým kontrastem a model Windows Forms je založená na rozhraní Systému Windows 10 Win32. Nejlepších výsledků dosáhnete tak, že spustíte nejnovější verzi Windows a přihlásíte se k nejnovějším změnám operačního systému tak, že do testovací aplikace přidáte soubor app.manifest a odkomentujte řádek podporovaného operačního systému Windows 10, aby vypadal takto:
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
Mezi příklady změn s vysokým kontrastem patří:
Zaškrtnutí položek MenuStrip je snazší zobrazit.
Když je tato možnost vybraná, zakázané MenuStrip položky se snadněji zobrazí.
Text ve vybraném Button ovládacím prvku kontrastuje s barvou výběru.
Zakázaný text je čitelnější. Příklad:
Před:
Po:
Vylepšení vysokého kontrastu v dialogovém okně Výjimky vlákna
Vylepšená podpora Předčítání
model Windows Forms v rozhraní .NET Framework 4.7.1 obsahuje následující vylepšení přístupnosti pro Předčítání:
Ovládací MonthCalendar prvek může získat přístup programem Předčítání a dalšími nástroji pro automatizaci uživatelského rozhraní.
Ovládací CheckedListBox prvek upozorní Program Předčítání, když se změnil stav kontroly položky, aby byl uživatel upozorněn, že změnil hodnotu položky seznamu.
Ovládací DataGridViewCell prvek hlásí do Programu Předčítání správný stav jen pro čtení.
Program Předčítání teď může číst zakázaný ToolStripMenuItem text, zatímco dříve přeskočí zakázané položky nabídky.
Vylepšená podpora vzorů přístupnosti UIAutomation
Počínaje rozhraním .NET Framework 4.7.1 můžou vývojáři technologických nástrojů pro usnadnění přístupu využívat běžné vzory a vlastnosti rozhraní API pro několik ovládacích prvků WinForms. Mezi tato vylepšení přístupnosti patří:
Model ComboBox rozbalení/sbalení teď podporuje.ToolStripSplitButton
Teď DataGridViewCheckBoxCell podporuje přepínací vzor.
Ovládací ToolStripItem prvek podporuje Name vlastnost a vzor rozbalení/sbalení.
Vlastnost NumericUpDown podporují Name a DomainUpDown ovládací prvky.
Vylepšené prostředí prohlížeče vlastností
Počínaje rozhraním .NET Framework 4.7.1 model Windows Forms zahrnuje:
- Lepší navigace pomocí klávesnice v různých oknech rozevíracího seznamu
- Snížení nepotřebných zarážek tabulátoru.
- Lepší generování sestav typů ovládacích prvků
- Vylepšené chování předčítání
webové ovládací prvky ASP.NET
Počínaje rozhraním .NET Framework 4.7.1 a sadou Visual Studio 2017 verze 15.3 ASP.NET zlepšuje způsob fungování webových ovládacích prvků ASP.NET s technologií přístupnosti v sadě Visual Studio. Mezi změny patří:
Změny implementace chybějících vzorů přístupnosti uživatelského rozhraní v ovládacích prvcích, jako je dialogové okno Přidat pole v průvodci zobrazení podrobností nebo dialogové okno Konfigurovat ListView průvodce ListView.
Změny pro zlepšení zobrazení v režimu Vysoký kontrast, jako je editor polí stránkování dat.
Změny, které zlepšují možnosti navigace pomocí klávesnice pro ovládací prvky, jako je dialogové okno Pole v Průvodci úpravou polí Pager ovládacího prvku DataPager, dialogové okno Konfigurovat objektContext nebo dialogové okno Konfigurovat výběr dat v průvodci Konfigurovat zdroj dat.
Nástroje sady .NET SDK
Nástroj editoru konfigurace (SvcConfigEditor.exe) a Nástroj pro sledování trasování služeb (SvcTraceViewer.exe) byly vylepšeny opravou různých problémů s přístupností. Většina z těchto problémů byla malá, například název, který se nedefinoval, nebo se správně neimplementovaly určité vzory automatizace uživatelského rozhraní. I když mnoho uživatelů nebude o těchto nesprávných hodnotách vědět, zákazníci, kteří používají technologie usnadnění, jako jsou čtečky obrazovky, najdou tyto nástroje sady SDK přístupnější.
Tato vylepšení mění některá předchozí chování, například pořadí fokusu klávesnice.
Návrhář pracovních postupů Windows Workflow Foundation (WF)
Změny přístupnosti v Návrháři pracovního postupu zahrnují následující:
Pořadí ovládacích prvků se změní zleva doprava a shora dolů v některých ovládacích prvcích:
Okno inicializace korelace pro nastavení dat korelace pro InitializeCorrelation aktivitu.
Okno definice obsahu pro Receiveaktivity , Send, SendReplya ReceiveReply aktivity.
Další funkce jsou k dispozici prostřednictvím klávesnice:
Při úpravách vlastností aktivity je možné skupiny vlastností sbalit pomocí klávesnice při prvním zaměření.
Ikony upozornění jsou přístupné pomocí klávesnice.
Tlačítko Další vlastnosti v okně Vlastnosti je přístupné pomocí klávesnice.
Uživatelé klávesnice mají přístup k položkám záhlaví v podoknech Argumenty a proměnné návrháře pracovního postupu.
Lepší viditelnost položek s fokusem, například v těchto případech:
Přidání řádků do datových mřížek používaných návrhářem pracovního postupu a návrháři aktivit
Tabbing through fields in the ReceiveReply and SendReply activities.
Nastavení výchozích hodnot pro proměnné nebo argumenty
Čtečky obrazovky teď můžou správně rozpoznat:
Zarážky nastavené v návrháři pracovního postupu
The FlowSwitch<T>, FlowDecisiona CorrelationScope activities.
Receive Obsah aktivity.
Typ cíle pro InvokeMethod aktivitu.
Pole se seznamem Výjimka a část Finally v aktivitě TryCatch .
Pole se seznamem Typ zprávy, rozdělovač v okně Přidat inicializátory korelace, okno Definice obsahu a okno CorrelationsOn Definition v aktivitách zasílání zpráv (Receive, Send, SendReplya ReceiveReply).
Přechody a cíle přechodů stavových počítačů
Poznámky a konektory k FlowDecision aktivitám
Kontextové nabídky (po kliknutí pravým tlačítkem myši) pro aktivity
Editory hodnot vlastností, tlačítko Vymazat hledání, tlačítka Podle kategorie a abecedního řazení a dialogové okno Editor výrazů v mřížce vlastností.
Procento přiblížení v Návrháři pracovního postupu
Aktivita InvokeDelegate .
Okno Vybrat typy pro aktivity slovníku (
Microsoft.Activities.AddToDictionary<TKey,TValue>
Microsoft.Activities.RemoveFromDictionary<TKey,TValue>
atd.).Okno Procházet a vybrat typ rozhraní .NET.
Popis cesty v Návrháři pracovního postupu
Uživatelé, kteří zvolí motivy s vysokým kontrastem, uvidí mnoho vylepšení viditelnosti Návrháře pracovního postupu a jeho ovládacích prvků, například lepší kontrastní poměry mezi prvky a znatelnými poli výběru používanými pro prvky fokusu.