Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klawisze dostępu to skróty klawiszowe, które zwiększają użyteczność i dostępność aplikacji systemu Windows, zapewniając intuicyjny sposób szybkiego nawigowania i interakcji z interfejsem graficznym aplikacji za pomocą klawiatury, zamiast użycia urządzenia wskazującego (takiego jak ekran dotykowy lub mysz).
Aplikacja Windows zapewnia wbudowaną obsługę kontrolek na różnych platformach zarówno dla klawiszy dostępu opartych na klawiaturze, jak i dla powiązanych informacji zwrotnych interfejsu użytkownika poprzez wizualne wskazówki nazywane wskazówkami klawiszowymi.
Uwaga / Notatka
Klawiatura jest niezbędna dla użytkowników z pewnymi niepełnosprawnościami (zobacz Ułatwienia dostępu za pomocą klawiatury), a także jest ważnym narzędziem dla użytkowników, którzy wolą go jako bardziej wydajny sposób interakcji z aplikacją.
Aby uzyskać szczegółowe informacje na temat wywoływania typowych akcji w aplikacji systemu Windows za pomocą skrótów klawiaturowych, zobacz temat Klucze akceleratora .
Aby utworzyć własne niestandardowe skróty klawiaturowe, zobacz temat Zdarzenia klawiatury .
Przegląd
Klucz dostępu jest kombinacją Alt i co najmniej jednego klucza alfanumerycznego — czasami nazywanego mnemonic — zwykle naciskanego sekwencyjnie, a nie jednocześnie.
Podpowiedzi kluczy są wyświetlane obok elementów sterujących, które obsługują klawisze dostępu, gdy użytkownik naciska klawisz Alt. Każda wskazówka klawiszowa zawiera klucze alfanumeryczne, które aktywują skojarzoną kontrolkę.
Uwaga / Notatka
Skróty klawiaturowe są automatycznie obsługiwane dla klawiszy dostępu z pojedynczym znakiem alfanumerycznym. Na przykład jednoczesne naciśnięcie Alt+F w programie Word powoduje otwarcie menu Plik bez wyświetlania podpowiedzi klawiszy.
Naciśnięcie klawisza Alt inicjuje funkcję klucza dostępu i wyświetla wszystkie obecnie dostępne kombinacje klawiszy w podpowiedziach klawiszowych. Kolejne naciśnięcia są obsługiwane przez mechanizm klawiszy dostępu, który odrzuca nieprawidłowe klawisze aż do naciśnięcia prawidłowego klawisza dostępu lub do naciśnięcia klawiszy Enter, Esc, Tab lub strzałek w celu dezaktywacji klawiszy dostępu i przywrócenia obsługi klawiszy do aplikacji.
Aplikacje pakietu Microsoft Office zapewniają obszerną obsługę kluczy dostępu. Na poniższej ilustracji przedstawiono kartę Narzędzia główne programu Word z aktywowanymi kluczami dostępu (zwróć uwagę na obsługę liczb i wielu naciśnięć).
Odznaki KeyTip dla kluczy dostępu w programie Microsoft Word
Aby dodać klucz dostępu do kontrolki, użyj właściwości AccessKey. Wartość tej właściwości określa sekwencję klawiszy dostępu, skrót (jeśli jest pojedynczym znakiem alfanumerycznym) i podpowiedź klawisza.
<Button Content="Accept" AccessKey="A" Click="AcceptButtonClick" />
Kiedy należy używać kluczy dostępu
Zalecamy określenie kluczy dostępu wszędzie tam, gdzie jest to odpowiednie w interfejsie użytkownika, i obsługę kluczy dostępu we wszystkich kontrolkach niestandardowych.
Klucze dostępu sprawiają, że aplikacja jest bardziej dostępna dla użytkowników niepełnosprawnych ruchowo, w tym tych użytkowników, którzy mogą naciskać tylko jeden naraz lub mieć trudności z użyciem myszy.
Dobrze zaprojektowany interfejs użytkownika klawiatury jest ważnym aspektem ułatwień dostępu do oprogramowania. Umożliwia użytkownikom upośledzenie wzroku lub osobom niepełnosprawnym ruchowym nawigowanie po aplikacji i interakcję z jej funkcjami. Tacy użytkownicy mogą nie być w stanie obsługiwać myszy i zamiast tego polegać na różnych technologiach pomocniczych, takich jak narzędzia do ulepszania klawiatury, klawiatury ekranowe, powiększacze ekranu, czytniki ekranu i narzędzia wprowadzania głosu. W przypadku tych użytkowników kluczowe jest kompleksowe pokrycie poleceń.
Klucze dostępu sprawiają, że aplikacja będzie bardziej użyteczna dla użytkowników, którzy wolą korzystać z klawiatury.
Doświadczeni użytkownicy często mają silne preferencje dotyczące używania klawiatury, ponieważ polecenia oparte na klawiaturze można wprowadzać szybciej i nie wymagają od nich usunięcia rąk z klawiatury. Dla tych użytkowników kluczowe znaczenie mają wydajność i spójność; kompleksowość jest ważna tylko w przypadku najczęściej używanych poleceń.
Ustawianie zakresu klucza dostępu
Jeśli na ekranie jest dostępnych wiele elementów obsługujących klucze dostępu, zalecamy określenie zakresu kluczy dostępu w celu zmniejszenia obciążenia poznawczego. Minimalizuje to liczbę kluczy dostępu na ekranie, co ułatwia ich lokalizowanie i poprawia wydajność i produktywność.
Na przykład program Microsoft Word udostępnia dwa zakresy kluczy dostępu: zakres podstawowy dla kart Wstążki i pomocniczy zakres dla poleceń na wybranej karcie.
Na poniższych obrazach przedstawiono dwa zakresy kluczy dostępu w programie Word. Pierwszy ilustruje podstawowe klawisze dostępu, które pozwalają użytkownikowi wybrać kartę i inne polecenia najwyższego poziomu, a drugi pokazuje pomocnicze klawisze dostępu dla karty Strona główna.
Podstawowe klucze dostępu w programie Microsoft Word
Pomocnicze klucze dostępu w programie Microsoft Word
Klucze dostępu można duplikować dla elementów w różnych zakresach. W poprzednim przykładzie "2" jest kluczem dostępu do cofania w zakresie podstawowym, a także "kursywą" w zakresie pomocniczym.
W tym miejscu pokazano, jak zdefiniować zakres klucza dostępu.
<CommandBar x:Name="MainCommandBar" AccessKey="M" >
<AppBarButton AccessKey="G" Icon="Globe" Label="Go"/>
<AppBarButton AccessKey="S" Icon="Stop" Label="Stop"/>
<AppBarSeparator/>
<AppBarButton AccessKey="R" Icon="Refresh" Label="Refresh" IsAccessKeyScope="True">
<AppBarButton.Flyout>
<MenuFlyout>
<MenuFlyoutItem AccessKey="A" Icon="Globe" Text="Refresh A" />
<MenuFlyoutItem AccessKey="B" Icon="Globe" Text="Refresh B" />
<MenuFlyoutItem AccessKey="C" Icon="Globe" Text="Refresh C" />
<MenuFlyoutItem AccessKey="D" Icon="Globe" Text="Refresh D" />
</MenuFlyout>
</AppBarButton.Flyout>
</AppBarButton>
<AppBarButton AccessKey="B" Icon="Back" Label="Back"/>
<AppBarButton AccessKey="F" Icon="Forward" Label="Forward"/>
<AppBarSeparator/>
<AppBarToggleButton AccessKey="T" Icon="Favorite" Label="Favorite"/>
<CommandBar.SecondaryCommands>
<AppBarToggleButton Icon="Like" AccessKey="L" Label="Like"/>
<AppBarButton Icon="Setting" AccessKey="S" Label="Settings" />
</CommandBar.SecondaryCommands>
</CommandBar>
Zakres podstawowy paska poleceń i obsługiwane klucze dostępu
Pomocniczy zakres paska poleceń i obsługiwane klucze dostępu
Windows 10 Creators Update i starsze
Przed aktualizacją Windows 10 Fall Creators Update niektóre kontrolki, takie jak CommandBar, nie obsługiwały wbudowanych zakresów kluczy dostępu.
W poniższym przykładzie pokazano, jak obsługiwać pomocnicze polecenia CommandBar z kluczami dostępu, które są dostępne po wywołaniu polecenia nadrzędnego (podobnie jak wstążka w programie Word).
<local:CommandBarHack x:Name="MainCommandBar" AccessKey="M" >
<AppBarButton AccessKey="G" Icon="Globe" Label="Go"/>
<AppBarButton AccessKey="S" Icon="Stop" Label="Stop"/>
<AppBarSeparator/>
<AppBarButton AccessKey="R" Icon="Refresh" Label="Refresh" IsAccessKeyScope="True">
<AppBarButton.Flyout>
<MenuFlyout>
<MenuFlyoutItem AccessKey="A" Icon="Globe" Text="Refresh A" />
<MenuFlyoutItem AccessKey="B" Icon="Globe" Text="Refresh B" />
<MenuFlyoutItem AccessKey="C" Icon="Globe" Text="Refresh C" />
<MenuFlyoutItem AccessKey="D" Icon="Globe" Text="Refresh D" />
</MenuFlyout>
</AppBarButton.Flyout>
</AppBarButton>
<AppBarButton AccessKey="B" Icon="Back" Label="Back"/>
<AppBarButton AccessKey="F" Icon="Forward" Label="Forward"/>
<AppBarSeparator/>
<AppBarToggleButton AccessKey="T" Icon="Favorite" Label="Favorite"/>
<CommandBar.SecondaryCommands>
<AppBarToggleButton Icon="Like" AccessKey="L" Label="Like"/>
<AppBarButton Icon="Setting" AccessKey="S" Label="Settings" />
</CommandBar.SecondaryCommands>
</local:CommandBarHack>
public class CommandBarHack : CommandBar
{
CommandBarOverflowPresenter secondaryItemsControl;
Popup overflowPopup;
public CommandBarHack()
{
this.ExitDisplayModeOnAccessKeyInvoked = false;
AccessKeyInvoked += OnAccessKeyInvoked;
}
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
Button moreButton = GetTemplateChild("MoreButton") as Button;
moreButton.SetValue(Control.IsTemplateKeyTipTargetProperty, true);
moreButton.IsAccessKeyScope = true;
// SecondaryItemsControl changes
secondaryItemsControl = GetTemplateChild("SecondaryItemsControl") as CommandBarOverflowPresenter;
secondaryItemsControl.AccessKeyScopeOwner = moreButton;
overflowPopup = GetTemplateChild("OverflowPopup") as Popup;
}
private void OnAccessKeyInvoked(UIElement sender, AccessKeyInvokedEventArgs args)
{
if (overflowPopup != null)
{
overflowPopup.Opened += SecondaryMenuOpened;
}
}
private void SecondaryMenuOpened(object sender, object e)
{
//This is not necessary given we are automatically pushing the scope.
var item = secondaryItemsControl.Items.First();
if (item != null && item is Control)
{
(item as Control).Focus(FocusState.Keyboard);
}
overflowPopup.Opened -= SecondaryMenuOpened;
}
}
Unikanie kolizji kluczy dostępu
Kolizje klucza dostępu występują, gdy co najmniej dwa elementy w tym samym zakresie mają zduplikowane klucze dostępu lub zaczynają się od tych samych znaków alfanumerycznych.
System rozwiązuje zduplikowane klucze dostępu, przetwarzając klucz dostępu pierwszego elementu dodanego do drzewa wizualizacji, ignorując wszystkie inne.
Gdy wiele kluczy dostępu zaczyna się od tego samego znaku (na przykład "A", "A1" i "AB"), system przetwarza klucz dostępu z jednym znakiem i ignoruje wszystkie inne.
Unikaj kolizji przy użyciu unikatowych kluczy dostępu lub za pomocą poleceń określania zakresu.
Wybieranie kluczy dostępu
Podczas wybierania kluczy dostępu należy wziąć pod uwagę następujące kwestie:
- Użyj pojedynczego znaku, aby zminimalizować naciśnięcia klawiszy i domyślnie obsługiwać klawisze dostępu (Alt+AccessKey)
- Unikaj używania więcej niż dwóch znaków
- Unikanie kolizji kluczy dostępu
- Unikaj znaków, które są trudne do odróżnienia od innych znaków, takich jak litera "I" i cyfra "1" lub litera "O" i cyfra "0"
- Używaj dobrze znanych precedensów z innych popularnych aplikacji, takich jak Word ("F" dla "Plik", "H" dla "Strona główna", itd.)
- Użyj pierwszego znaku nazwy polecenia lub znaku z bliskim skojarzeniem do polecenia, które pomaga przypomnieć
- Jeśli pierwsza litera jest już przypisana, użyj litery, która jest jak najbardziej zbliżona do pierwszej litery nazwy polecenia ("N" dla Wstaw)
- Użyj charakterystycznej spółgłoski z nazwy polecenia ("W" dla polecenia "Widok")
- Użyj samogłoski z nazwy polecenia.
Lokalizowanie kluczy dostępu
Jeśli aplikacja będzie lokalizowana w wielu językach, należy również rozważyć zlokalizowanie kluczy dostępu. Na przykład dla "H" dla "Strona główna" w EN-US i "I" dla "Inicio" w ES-ES.
Użyj rozszerzenia x:Uid w znaczniku, aby zastosować zlokalizowane zasoby, jak pokazano poniżej:
<Button Content="Home" AccessKey="H" x:Uid="HomeButton" />
Zasoby dla każdego języka są dodawane do właściwych folderów String w projekcie.
Foldery ciągów zasobów w języku angielskim i hiszpańskim
Zlokalizowane klucze dostępu są określone w pliku resources.resw w zasobach projektu.
Określ właściwość AccessKey określoną w pliku resources.resw
Aby uzyskać więcej informacji, zobacz Tłumaczenie zasobów interfejsu użytkownika
Pozycjonowanie wskazówek klawiszy
Etykietki kluczy są wyświetlane jako zmienne znaczki względem odpowiedniego elementu interfejsu użytkownika, biorąc pod uwagę obecność innych elementów interfejsu użytkownika, innych etykietek i krawędzi ekranu.
Zazwyczaj domyślna lokalizacja podpowiedzi klucza jest wystarczająca i zapewnia wbudowaną obsługę adaptacyjnego UI.
Przykład automatycznego umieszczania etykietki kluczy
Jednak jeśli potrzebujesz większej kontroli nad pozycjonowaniem wskazówek klawiszowych, zalecamy wykonanie następujących czynności:
Oczywista zasada asocjacji: użytkownik może łatwo asocjować kontrolkę z wskazówką klucza.
a. Skrót klawiaturowy powinien znajdować się blisko elementu, który posiada klucz dostępu.
b. Podpowiedź klucza powinna unikać zakrywania elementów posiadających klucze dostępu.
c. Jeśli nie można umieścić oznaczenia klucza blisko właściciela, powinno ono nakładać się na właściciela.Odnajdywanie: użytkownik może szybko odnaleźć kontrolę za pomocą klawiszy wskazówek.
a. Klawisz nigdy nie nakłada się na inne klawisze.
Łatwe przeglądanie: Użytkownik może łatwo przeglądać wskazówki klawiszy.
a. etykietki powinny być wyrównane ze sobą i z elementem interfejsu użytkownika. b. etykiety kluczy powinny być grupowane jak najbardziej.
Położenie względne
Użyj właściwości KeyTipPlacementMode, aby dostosować umieszczanie skrótów klawiaturowych dla każdego elementu lub grupy.
Tryby umieszczania to: Górny, Dolny, Prawy, Lewy, Ukryty, Środkowy i Automatyczny.
tryby umieszczania klawiszowych podpowiedzi
Linia środkowa kontrolki służy do obliczania wyrównania pionowego i poziomego wskazówki klawisza.
W poniższym przykładzie pokazano, jak ustawić położenie etykiet KeyTip dla grupy kontrolek przy użyciu właściwości KeyTipPlacementMode w panelu StackPanel.
<StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" KeyTipPlacementMode="Top">
<Button Content="File" AccessKey="F" />
<Button Content="Home" AccessKey="H" />
<Button Content="Insert" AccessKey="N" />
</StackPanel>
Przesunięcia
Użyj właściwości KeyTipHorizontalOffset i KeyTipVerticalOffset elementu, aby uzyskać bardziej precyzyjną kontrolę nad położeniem wskazówki klawisza.
Uwaga / Notatka
Nie można ustawić przesunięcia, gdy dla opcji KeyTipPlacementMode ustawiono wartość Auto.
Właściwość KeyTipHorizontalOffset wskazuje, jak daleko przesunąć wskazówkę skrótu klawiaturowego w lewo lub w prawo.
Ustaw przesunięcia pionowe i poziome wskazówek klawiszy dla przycisku
<Button
Content="File"
AccessKey="F"
KeyTipPlacementMode="Bottom"
KeyTipHorizontalOffset="20"
KeyTipVerticalOffset="-8" />
Wyrównanie krawędzi ekranu {#screen-edge-alignment .ListParagraph}
Lokalizacja klawisza jest automatycznie dostosowywana w oparciu o krawędź ekranu, aby zapewnić pełną widoczność klawisza. W takim przypadku odległość między kontrolką a punktem wyrównania klawisza może się różnić od wartości określonych dla przesunięć poziomych i pionowych.
skrótki klawiaturowe są automatycznie rozmieszczane w oparciu o krawędź ekranu
Styl etykietki klucza
Zalecamy użycie wbudowanej obsługi wskazówek klawiszy dla motywów platformy, w tym wysokiego kontrastu.
Jeśli musisz określić własne style dla etykiet skrótów klawiszowych, użyj zasobów aplikacji, takich jak KeyTipFontSize (rozmiar czcionki), KeyTipFontFamily (rodzina czcionek), KeyTipBackground (tło), KeyTipForeground (pierwszy plan), KeyTipPadding (dopełnienie), KeyTipBorderBrush (kolor obramowania) i KeyTipBorderThemeThickness (grubość obramowania).
opcje dostosowywania skrótów klawiaturowych
W tym przykładzie pokazano, jak zmienić te zasoby aplikacji:
<Application.Resources>
<SolidColorBrush Color="DarkGray" x:Key="MyBackgroundColor" />
<SolidColorBrush Color="White" x:Key="MyForegroundColor" />
<SolidColorBrush Color="Black" x:Key="MyBorderColor" />
<StaticResource x:Key="KeyTipBackground" ResourceKey="MyBackgroundColor" />
<StaticResource x:Key="KeyTipForeground" ResourceKey="MyForegroundColor" />
<StaticResource x:Key="KeyTipBorderBrush" ResourceKey="MyBorderColor"/>
<FontFamily x:Key="KeyTipFontFamily">Consolas</FontFamily>
<x:Double x:Key="KeyTipContentThemeFontSize">18</x:Double>
<Thickness x:Key="KeyTipBorderThemeThickness">2</Thickness>
<Thickness x:Key="KeyTipThemePadding">4,4,4,4</Thickness>
</Application.Resources>
Klawisze dostępu i Narrator
Struktura XAML uwidacznia właściwości automatyzacji, które umożliwiają klientom automatyzacji interfejsu użytkownika odnajdywanie informacji o elementach w interfejsie użytkownika.
Jeśli określisz właściwość AccessKey w kontrolce UIElement lub TextElement, możesz użyć właściwości AutomationProperties.AccessKey , aby uzyskać tę wartość. Klienci ułatwień dostępu, tacy jak Narrator, odczytują wartość tej właściwości za każdym razem, gdy element zyskuje fokus.
Powiązane artykuły
Próbki
Windows developer