Aracılığıyla paylaş


Erişim anahtarları

Erişim tuşları, kullanıcıların işaretçi cihazı (dokunma veya fare gibi) yerine klavye aracılığıyla uygulamanın görünür kullanıcı arabiriminde hızlı bir şekilde gezinmesi ve etkileşim kurması için sezgisel bir yol sağlayarak Windows uygulamalarınızın kullanılabilirliğini ve erişilebilirliğini geliştiren klavye kısayollarıdır.

Windows uygulaması, tuş ipuçları adı verilen görsel ipuçları aracılığıyla hem klavye tabanlı erişim tuşları hem de ilişkili kullanıcı arabirimi geri bildirimi için platform denetimleri genelinde yerleşik destek sağlar.

Uyarı

Klavye, belirli engelleri olan kullanıcılar için vazgeçilmezdir (bkz . Klavye erişilebilirliği) ve bir uygulamayla etkileşim kurmanın daha verimli bir yolu olarak bunu tercih eden kullanıcılar için de önemli bir araçtır.

Klavye kısayollarıyla bir Windows uygulamasında yaygın eylemleri çağırma hakkında ayrıntılı bilgi için Hızlandırıcı tuşları konusuna bakın.

Kendi özel klavye kısayollarınızı oluşturmak için Klavye olayları konusuna bakın.

Genel Bakış

Erişim tuşu, Alt tuşunun ve bazen anımsatıcı olarak da adlandırılan bir veya daha fazla alfasayısal tuşlarına aynı anda değil sıralı olarak basıldığından oluşur.

Tuş ipuçları, kullanıcı Alt tuşuna bastığında erişim tuşlarını destekleyen denetimlerin yanında görüntülenen rozetlerdir. Her tuş ipucu, ilişkili denetimi etkinleştiren alfasayısal anahtarları içerir.

Uyarı

Klavye kısayolları, tek bir alfasayısal karaktere sahip erişim tuşları için otomatik olarak desteklenir. Örneğin, Word'de Alt+F tuşlarına aynı anda basıldığında, tuş ipuçlarını görüntülemeden Dosya menüsü açılır.

Alt tuşuna basıldığında erişim anahtarı işlevi başlatılır ve kullanılabilir durumdaki tüm tuş bileşimleri tuş ipuçlarında görüntülenir. Erişim tuşu çerçevesi, sonraki tuş vuruşlarını işler ve geçersiz tuşları reddeder. İşlem, geçerli bir erişim tuşuna basılana veya Enter, Esc, Sekme veya Ok tuşlarına basılarak erişim tuşları devre dışı bırakılıp tuş vuruşu işlemenin uygulamaya dönmesine kadar devam eder.

Microsoft Office uygulamaları erişim anahtarları için kapsamlı destek sağlar. Aşağıdaki görüntüde, erişim tuşlarının etkinleştirildiği Word'ün Giriş sekmesi gösterilmektedir (hem sayılar hem de birden çok tuş vuruşu desteğine dikkat edin).

Microsoft Word'de erişim anahtarları için tuş ipucu rozetleri

Microsoft Word'de erişim anahtarları için Tuş İpucu rozetleri

Denetime erişim anahtarı eklemek için AccessKey özelliğini kullanın. Bu özelliğin değeri erişim tuşu sırasını, kısayolu (tek bir alfasayısal ise) ve tuş ipucunu belirtir.

<Button Content="Accept" AccessKey="A" Click="AcceptButtonClick" />

Erişim anahtarları ne zaman kullanılır?

Kullanıcı arabiriminizde uygun olan her yerde erişim anahtarları belirtmenizi ve tüm özel denetimlerde erişim anahtarlarını desteklemenizi öneririz.

  1. Erişim tuşları, bir kerede yalnızca bir tuşa basabilen veya fare kullanmakta zorluk çeken kullanıcılar da dahil olmak üzere, motor engelli kullanıcılar için uygulamanızı daha erişilebilir hale getirir.

    İyi tasarlanmış bir klavye kullanıcı arabirimi, yazılım erişilebilirliğinin önemli bir yönüdür. Görme engelli veya belirli motor engelli kullanıcıların bir uygulamada gezinmesini ve özellikleriyle etkileşim kurmasını sağlar. Bu tür kullanıcılar fare çalıştıramayabilir ve bunun yerine klavye geliştirme araçları, ekran klavyeleri, ekran büyütücüler, ekran okuyucular ve ses giriş yardımcı programları gibi çeşitli yardımcı teknolojilere güvenebilir. Bu kullanıcılar için kapsamlı komut kapsamı çok önemlidir.

  2. Erişim tuşları, uygulamanızı klavyeyle etkileşim kurmayı tercih eden güçlü kullanıcılar için daha kullanılabilir hale getirir.

    Klavye tabanlı komutlar daha hızlı girilebildiği ve klavyeden ellerini kaldırmaları gerekmediğinden, deneyimli kullanıcılar genellikle klavyeyi kullanma konusunda güçlü bir tercihe sahiptir. Bu kullanıcılar için verimlilik ve tutarlılık çok önemlidir; kapsamlılık yalnızca en sık kullanılan komutlar için önemlidir.

Erişim anahtarı kapsamını ayarlama

Ekranda erişim anahtarlarını destekleyen birçok öğe olduğunda , bilişsel yükü azaltmak için erişim anahtarlarının kapsamını belirlemenizi öneririz. Böylece ekrandaki erişim tuşlarının sayısı en aza indirgenir ve bu sayede daha kolay bulunur ve verimlilik ile üretkenlik artar.

Örneğin, Microsoft Word iki erişim anahtarı kapsamı sağlar: Şerit sekmeleri için birincil kapsam ve seçili sekmedeki komutlar için ikincil kapsam.

Aşağıdaki görüntüler, Word'deki iki erişim anahtarı kapsamını gösterir. Birincisi, kullanıcının bir sekmeyi ve diğer üst düzey komutları seçmesine izin veren birincil erişim anahtarlarını, ikincisi ise Giriş sekmesi için ikincil erişim anahtarlarını gösterir.

Microsoft Word'de birincil erişim anahtarları Microsoft Word'de birincil erişim anahtarları

Microsoft Word'de ikincil erişim anahtarları Word'de ikincil erişim anahtarları

Erişim anahtarları farklı kapsamlardaki öğeler için çoğaltılabilir. Yukarıdaki örnekte "2", birincil kapsamda Geri Al için erişim anahtarı ve ikincil kapsamda da "İtalik"tir.

Burada erişim anahtarı kapsamının nasıl tanımlanacağı gösterilmektedir.

<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>

CommandBar için birincil erişim anahtarları

CommandBar birincil kapsamı ve desteklenen erişim anahtarları

CommandBar için ikincil erişim anahtarları

CommandBar ikincil kapsamı ve desteklenen erişim anahtarları

Windows 10 Creators Update ve daha eski

Windows 10 Fall Creators Update'in öncesinde CommandBar gibi bazı denetimler yerleşik erişim anahtarı kapsamlarını desteklemedi.

Aşağıdaki örnek, bir üst komut çağrıldıktan sonra erişim anahtarlarıyla kullanılabilen CommandBar İkincil Komutlarının nasıl desteklendiğini göstermektedir (Word'deki Şeride benzer).

<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;
    }
}

Erişim anahtarı çakışmalarını önleme

Erişim anahtarı çakışmaları, aynı kapsamdaki iki veya daha fazla öğe yinelenen erişim anahtarlarına sahip olduğunda veya aynı alfasayısal karakterlerle başladığında oluşur.

Sistem, diğer tüm öğeleri yoksayarak görsel ağaca eklenen ilk öğenin erişim anahtarını işleyerek yinelenen erişim anahtarlarını çözümler.

Birden çok erişim anahtarı aynı karakterle (örneğin, "A", "A1" ve "AB") başladığında, sistem tek karakterli erişim anahtarını işler ve diğerlerini yoksayar.

Benzersiz erişim anahtarları kullanarak veya komutları kapsam belirleyerek çakışmalardan kaçının.

Erişim anahtarlarını seçme

Erişim anahtarlarını seçerken aşağıdakileri göz önünde bulundurun:

  • Tuş vuruşlarını en aza indirmek ve hızlandırıcı tuşlarını varsayılan olarak desteklemek için tek bir karakter kullanın (Alt+AccessKey)
  • İkiden fazla karakter kullanmaktan kaçının
  • Erişim tuşları çakışmalarını önleme
  • "I" harfi ve "1" veya "O" harfi ve "0" sayısı gibi diğer karakterlerden ayırt edilmesi zor karakterlerden kaçının
  • Word gibi diğer popüler uygulamalardan iyi bilinen örnekleri kullanın ("Dosya" için "F", "Giriş" için "H" vb.)
  • Komut adının ilk karakterini veya geri çağırmaya yardımcı olan komutla yakın ilişkisi olan bir karakter kullanın
    • İlk harf zaten atanmışsa, komut adının ilk harfine mümkün olduğunca yakın bir harf kullanın ("Ekle için N"
    • Komut adından belirleyici bir ünsüz harf kullanın ("Görünüm için W")
    • Komut adından bir sesli harf kullanın.

Erişim anahtarlarını yerelleştirme

Uygulamanız birden çok dilde yerelleştirilecekse erişim anahtarlarını da yerelleştirmeyi düşünmelisiniz. Örneğin, en-US'de "Home" için "H" ve es-ES'de "Inicio" için "I".

Burada gösterildiği gibi yerelleştirilmiş kaynakları uygulamak için işaretlemede x:Uid uzantısını kullanın:

<Button Content="Home" AccessKey="H" x:Uid="HomeButton" />

Her dil için kaynaklar projedeki ilgili Dize klasörlerine eklenir:

İngilizce ve İspanyolca kaynak dizesi klasörleri

İngilizce ve İspanyolca kaynak dizesi klasörleri

Yerelleştirilmiş erişim anahtarları projelerinizdeki resources.resw adlı dosyada belirtilir.

resources.resw dosyasında belirtilen AccessKey özelliğini belirtin

resources.resw dosyasında belirtilen AccessKey özelliğini belirtin

Daha fazla bilgi için bkz . Ui kaynaklarını çevirme

Tuş ipucu konumlandırma

Tuş ipuçları, diğer kullanıcı arabirimi öğelerinin, diğer tuş ipuçlarının ve ekran kenarının varlığı dikkate alınarak ilgili kullanıcı arabirimi öğelerine göre kayan rozetler olarak görüntülenir.

Genellikle varsayılan anahtar ipucu konumu yeterlidir ve uyarlamalı kullanıcı arabirimi için yerleşik destek sağlar.

Otomatik tuş ipucu yerleştirme örneği

Otomatik keytip yerleştirme örneği

Ancak, tuş ipucu konumlandırma üzerinde daha fazla denetime ihtiyacınız varsa, aşağıdakileri öneririz:

  1. Belirgin ilişkilendirme ilkesi: Kullanıcı denetimi anahtar ipucuyla kolayca ilişkilendirebilir.

    a. Anahtar ipucu, erişim anahtarına (sahip) sahip olan öğeye yakın olmalıdır.
    b. Tuş ipucu, erişim anahtarları olan etkin öğeleri kapsamamalıdır.
    c. Bir anahtar ipucu sahibine yakın yerleştirilemiyorsa, bu ipucu sahibiyle örtüşmelidir. 

  2. Bulunabilirlik: Kullanıcı, denetimi hızlı bir şekilde anahtar ipucuyla bulabilir.

    a. Anahtar ipucu hiçbir zaman diğer tuş ipuçlarıyla üst üste gelmez.  

  3. Kolay tarama: Kullanıcı önemli ipuçlarını kolayca gözden geçirebilir.

    a. Anahtar ipuçları, birbiriyle ve UI öğesiyle uyumlu olarak hizalanmalıdır. b. anahtar ipuçları mümkün olduğunca gruplanmalıdır

Göreli konum

Anahtar ipucunun öğe başına veya grup bazında yerleşimini özelleştirmek için KeyTipPlacementMode özelliğini kullanın.

Yerleştirme modları şunlardır: Üst, Alt, Sağ, Sol, Gizli, Ortala ve Otomatik.

Tuş ipucu yerleştirme modlarının göreli konumlarını gösteren ekran görüntüsü

tuş ipucu yerleştirme modları

Denetimin orta çizgisi, tuş ipucunun dikey ve yatay hizalamasını hesaplamak için kullanılır.

Aşağıdaki örnekte, StackPanel kapsayıcısının KeyTipPlacementMode özelliği kullanılarak bir denetim grubunun anahtar ipucu yerleşiminin nasıl ayarlanacağı gösterilmektedir.

<StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" KeyTipPlacementMode="Top">
  <Button Content="File" AccessKey="F" />
  <Button Content="Home" AccessKey="H" />
  <Button Content="Insert" AccessKey="N" />
</StackPanel>

Kaydırır

Anahtar ipucu konumunun daha ayrıntılı denetimi için bir öğenin KeyTipHorizontalOffset ve KeyTipVerticalOffset özelliklerini kullanın.

Uyarı

KeyTipPlacementMode Otomatik olarak ayarlandığında uzaklıklar ayarlanamaz.

KeyTipHorizontalOffset özelliği, tuş ipucunun ne kadar sola veya sağa taşınacağını gösterir.

Düğme için dikey ve yatay tuş ipucu uzaklıklarının ekran görüntüsü

Düğme için dikey ve yatay tuş ipucu uzaklıklarını ayarlama

<Button
  Content="File"
  AccessKey="F"
  KeyTipPlacementMode="Bottom"
  KeyTipHorizontalOffset="20"
  KeyTipVerticalOffset="-8" />

Ekran kenar hizalaması {#screen-edge-alignment .ListParagraph}

Tuş ipucunun tam olarak görünür olduğundan emin olmak için bir tuş ipucunun konumu ekran kenarına göre otomatik olarak ayarlanır. Bu durumda, denetim ile anahtar ipucu hizalama noktası arasındaki uzaklık, yatay ve dikey uzaklıklar için belirtilen değerlerden farklı olabilir.

Tuş ipucu ekran kenarı hizalamasının ekran görüntüsü

tuş ipuçları ekran kenarına göre otomatik olarak konumlandırılır

Tuş ipucu stili

Yüksek karşıtlık dahil olmak üzere platform temaları için yerleşik tuş ipucu desteğini kullanmanızı öneririz.

Kendi tuş ipucu stillerinizi belirtmeniz gerekiyorsa, KeyTipFontSize (yazı tipi boyutu), KeyTipFontFamily (yazı tipi ailesi), KeyTipBackground (arka plan), KeyTipForeground (ön plan), KeyTipPadding (doldurma), KeyTipBorderBrush(Kenarlık rengi) ve KeyTipBorderThemeThickness (kenarlık kalınlığı) gibi uygulama kaynaklarını kullanın.

Yazı tipi, sipariş ve renk gibi tuş ipucu özelleştirme seçeneklerinin ekran görüntüsü

tuş ipucu özelleştirme seçenekleri

Bu örnekte, bu uygulama kaynaklarının nasıl değiştireceği gösterilmektedir:

<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>

Erişim tuşları ve Ekran Okuyucusu

XAML çerçevesi, UI Otomasyonu istemcilerinin kullanıcı arabirimindeki öğeler hakkında bilgi bulmasını sağlayan Otomasyon Özelliklerini kullanıma sunar.

UiElement veya TextElement denetiminde AccessKey özelliğini belirtirseniz, bu değeri almak için AutomationProperties.AccessKey özelliğini kullanabilirsiniz. Ekran Okuyucusu gibi erişilebilirlik istemcileri, bir öğe her odak aldığında bu özelliğin değerini okur.

Örnekleri