İzlenecek yol: Erişilebilir bir Windows Tabanlı Uygulama Oluşturma

Erişilebilir bir uygulama oluşturmak önemli iş etkilerine sahiptir. Birçok kamu yazılımı, yazılım satın alma için erişilebilirlik düzenlemelerine sahiptir. sertifikalı Windows logosu erişilebilirlik gereksinimlerini içerir. ABD 'deki tahmini bir 30.000.000 sakın tek başına, potansiyel müşterilerinin çoğu yazılım erişilebilirliğiyle etkilenir.

bu izlenecek yol, sertifikalı Windows logosu için beş erişilebilirlik gereksinimini ele alacak. Bu gereksinimlere göre, erişilebilir bir uygulama şunları sağlar:

  • Denetim Masası boyutunu, rengini, yazı tipini ve giriş ayarlarını destekler. Kullanıcı denetim masası ayarlarını değiştirdiğinde, menü çubuğu, başlık çubuğu, kenarlıklar ve durum çubuğunun hepsi kendini yeniden boyutlandıracaktır. Bu uygulamada denetimlerde veya kodda ek değişiklik yapılması gerekmez.

  • Yüksek Karşıtlık modunu destekler.

  • Tüm özelliklere belgelenmiş klavye erişimi sağlar.

  • Klavye odağının konumunu görsel ve programlı olarak ortaya çıkarın.

  • Önemli bilgileri seslerle tek başına vermekten kaçının.

Daha fazla bilgi için bkz. erişilebilir uygulamalar tasarlama kaynakları.

Farklı klavye düzenlerini destekleme hakkında daha fazla bilgi için bkz. Dünya çapında kullanılabilecek uygulamalar geliştirmek Için En Iyi uygulamalar.

Projeyi Oluşturma

Bu izlenecek yol, pizza siparişi alan bir uygulama için Kullanıcı arabirimi oluşturur. Bu, TextBox müşterinin adı için, bir RadioButton Grup olan pizza boyutunu seçme, toppings seçmek için bir grup, CheckedListBox Order ve Cancel etiketli iki düğme denetimi ve çıkış komutuyla bir menü içerir.

Kullanıcı müşterinin adını, pizza boyutunu ve toppings istenen şekilde girer. Kullanıcı sipariş düğmesine tıkladığında, siparişin Özeti ve maliyeti bir ileti kutusunda görüntülenir ve denetimler temizlenir ve bir sonraki sırada kullanılabilir. Kullanıcı Iptal düğmesine tıkladığında, denetimler temizlenir ve bir sonraki sıraya göre hazırlanalınır. Kullanıcı çıkış menü öğesine tıkladığında program kapanır.

Bu izlenecek yolun vurgusu, bir perakende sipariş sisteminin kodu değil, Kullanıcı arabiriminin erişilebilirliği değildir. İzlenecek yol, düğmeler, radyo düğmeleri, metin kutuları ve Etiketler dahil olmak üzere, sık kullanılan birçok denetimin erişilebilirlik özelliklerini gösterir.

Uygulamayı yapmaya başlamak için

Forma denetim ekleme

Denetimleri bir forma eklerken, erişilebilir bir uygulama oluşturmak için aşağıdaki yönergeleri aklınızda bulundurun:

  • AccessibleDescriptionVe özelliklerini ayarlayın AccessibleName . Bu örnekte, için varsayılan ayar AccessibleRole yeterlidir. erişilebilirlik özellikleri hakkında daha fazla bilgi için bkz. Windows formundaki denetimler için erişilebilirlik bilgileri sağlama.

  • Yazı tipi boyutunu 10 noktaya veya daha büyük olarak ayarlayın.

    Not

    Başlattığınız sırada formun yazı tipi boyutunu 10 olarak ayarlarsanız, daha sonra forma eklenen tüm denetimlerin 10 yazı tipi boyutu olur.

  • TextBox denetimini açıklayan etiket denetiminin, sekme düzeninde TextBox denetiminden hemen önce geldiğinden emin olun.

  • &Text Kullanıcının gitmek isteyebileceğiniz herhangi bir denetimin özelliğine "" karakterini kullanarak bir erişim anahtarı ekleyin.

  • &Text Kullanıcının gitmek isteyebileceğiniz bir denetimin önündeki etiketin özelliğine "" karakterini kullanarak bir erişim anahtarı ekleyin. UseMnemonictrue Kullanıcı erişim tuşuna bastığında, odağın sekme sırasında bir sonraki denetime ayarlanabilmesi için etiketlerin ' özelliğini olarak ayarlayın.

  • Tüm menü öğelerine erişim anahtarları ekleyin.

Windows uygulamanızı erişilebilir hale getirmek için

  • Denetimleri forma ekleyin ve aşağıda açıklandığı gibi özellikleri ayarlayın. Form üzerinde denetimlerin nasıl düzenlendiğini gösteren bir model için tablonun sonundaki resme bakın.

    Nesne Özellik Değer
    Form1 Erişilebilir açıklama Sipariş formu
    Erişilebilir ad Sipariş formu
    Yazı tipi boyutu 10
    Metin Pizza sırası formu
    PictureBox Name logo
    Erişilebilir açıklama Pizza dilimi
    Erişilebilir ad Şirket logosu
    Görüntü Herhangi bir simge veya bit eşlem
    Etiketle Name companyLabel
    Metin İyi pizza
    Atan 1
    Erişilebilir açıklama Şirket adı
    Erişilebilir ad Şirket adı
    Rengi Mavi
    ForeColor Yellow
    Yazı tipi boyutu 18
    Etiketle Name customerLabel
    Metin &Name
    Atan 2
    Erişilebilir açıklama Müşteri adı etiketi
    Erişilebilir ad Müşteri adı etiketi
    Useanımsatıcı Doğru
    TextBox Name customerName
    Metin (yok)
    Tabındex 3
    Accessibledescription Müşteri adı
    Accessiblename Müşteri adı
    GroupBox Name sizeOptions
    Accessibledescription Pizza boyutu seçenekleri
    Accessiblename Pizza boyutu seçenekleri
    Metin Pizza boyutu
    Tabındex 4
    RadioButton Name smallPizza
    Metin &Küçük 6,00 ABD doları
    İşaretli Doğru
    Tabındex 0
    Accessibledescription Küçük pizza
    Accessiblename Küçük pizza
    RadioButton Name largePizza
    Metin &Büyük 10,00 ABD doları
    Tabındex 1
    Accessibledescription Büyük pizza
    Accessiblename Büyük pizza
    Etiketle Name toppingsLabel
    Metin &Toppings (her biri 0,75 ABD doları)
    Tabındex 5
    Accessibledescription Toppings etiketi
    Accessiblename Toppings etiketi
    UseMnemonic Doğru
    Checkedlistbox Name Topingler
    Tabındex 6
    Accessibledescription Kullanılabilir topping'ler
    Accessiblename Kullanılabilir topping'ler
    Öğeler Sucuk, Yer, Yer
    Düğme Name sıra
    Metin &Sipariş
    Tabındex 7
    Accessibledescription Siparişin toplam sayısı
    Accessiblename Toplam sipariş
    Düğme Name iptal
    Metin &İptal
    Tabındex 8
    Accessibledescription Siparişi iptal etme
    Accessiblename Siparişi iptal etme
    Mainmenu Name theMainMenu
    MenuItem Name fileCommands
    Metin &Dosya
    MenuItem Name exitApp
    Metin E- & çı

    Formunuz aşağıdaki görüntüye benzer bir şekilde görünür:

    The pizza order form with a name textbox, and size and toppings selection.

Yüksek Karşıtlık modunu destekleme

Yüksek Karşıtlık modu, görme engelli kullanıcılar için faydalı olan karşıt renkler ve yazı tipi boyutlarını kullanarak okunabilirliği artıran bir Windows sistem ayarıdır. HighContrastÖzelliği, yüksek karşıtlık modunun ayarlanmış olup olmadığını belirlemesi için sağlanır.

SystemInformation. Highkarşıtlıklı ise true , uygulamanın şunları yapmanız gerekir:

  • Sistem renk şemasını kullanarak tüm Kullanıcı arabirimi öğelerini görüntüleme

  • Görsel ipuçlarıyla veya renk aracılığıyla ileten tüm bilgileri sesleyerek bir şekilde dolaşın. Örneğin, belirli liste öğeleri kırmızı bir yazı tipi kullanılarak vurgulanmışsa, yazı tipine de kalın ekleyebilirsiniz, böylece kullanıcının öğelerin vurgulandığı bir Color olmayan ipucu vardır.

  • Metnin arkasındaki görüntüleri veya desenleri atlayın

Uygulamanın, HighContrast uygulamanın başladığı ve sistem olayına yanıt verdiği ayarı denetlemesi gerekir UserPreferenceChanged . UserPreferenceChangedOlay her değişiklik değeri her değiştiğinde tetiklenir HighContrast .

Uygulamamızda, Color için sistem ayarlarını kullanmayan tek öğe lblCompanyName . SystemColorsSınıfı, etiketin renk ayarlarını kullanıcı tarafından seçilen sistem renkleriyle değiştirmek için kullanılır.

Yüksek Karşıtlık modunu etkili bir şekilde etkinleştirmek için

  1. Etiketin renklerini sistem renkleriyle ayarlamak için bir yöntem oluşturun.

    Private Sub SetColorScheme()
        If SystemInformation.HighContrast Then
            companyLabel.BackColor = SystemColors.Window
            companyLabel.ForeColor = SystemColors.WindowText
        Else
            companyLabel.BackColor = Color.Blue
            companyLabel.ForeColor = Color.Yellow
        End If
    End Sub
    
    private void SetColorScheme()
    {
        if (SystemInformation.HighContrast)
        {
            companyLabel.BackColor = SystemColors.Window;
            companyLabel.ForeColor = SystemColors.WindowText;
        }
        else
        {
            companyLabel.BackColor = Color.Blue;
            companyLabel.ForeColor = Color.Yellow;
        }
    }
    
  2. SetColorSchemeyordamını form oluşturucusunda çağırın ( Public Sub New() Visual Basic ve public Form1() Visual C# ' de). Visual Basic oluşturucuya erişmek için, Windows Form tasarımcısı tarafından oluşturulan kodetiketli bölgeyi genişletmeniz gerekecektir.

    Public Sub New()
        MyBase.New()
        InitializeComponent()
        SetColorScheme()
    End Sub
    
    public Form1()
    {
        InitializeComponent();
        SetColorScheme();
    }
    
  3. Olaya yanıt vermek için uygun imzayla bir olay yordamı oluşturun UserPreferenceChanged .

    Protected Sub UserPreferenceChanged(sender As Object, _
    e As Microsoft.Win32.UserPreferenceChangedEventArgs)
        SetColorScheme()
    End Sub
    
    public void UserPreferenceChanged(object sender,
    Microsoft.Win32.UserPreferenceChangedEventArgs e)
    {
        SetColorScheme();
    }
    
  4. Olay yordamını sistem olayına bağlamak için, çağrısından sonra form oluşturucusuna kod ekleyin InitializeComponents . Bu yöntem yordamı çağırır SetColorScheme .

    Public Sub New()
        MyBase.New()
        InitializeComponent()
        SetColorScheme()
        AddHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _
           AddressOf Me.UserPreferenceChanged
    End Sub
    
    public Form1()
    {
        InitializeComponent();
        SetColorScheme();
        Microsoft.Win32.SystemEvents.UserPreferenceChanged
           += new Microsoft.Win32.UserPreferenceChangedEventHandler(
           this.UserPreferenceChanged);
    }
    
  5. DisposeDispose Uygulama kapandığında olayı serbest bırakmak için, temel sınıfın yöntemine çağrıdan önce, form yöntemine kod ekleyin. DisposeVisual Basic yönteme erişmek için, Windows Form tasarımcısı tarafından üretilen kod etiketli bölgeyi genişletmeniz gerekir.

    Not

    Sistem olay kodu, ana uygulamadan ayrı bir iş parçacığı çalıştırır. Olayı yayınlamayın, olaya yedeklediğiniz kod Program kapatıldıktan sonra bile çalışacaktır.

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing AndAlso components IsNot Nothing Then
            components.Dispose()
        End If
        RemoveHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _
           AddressOf Me.UserPreferenceChanged
        MyBase.Dispose(disposing)
    End Sub
    
    protected override void Dispose(bool disposing)
    {
        if(disposing && components != null)
        {
            components.Dispose();
        }
        Microsoft.Win32.SystemEvents.UserPreferenceChanged
           -= new Microsoft.Win32.UserPreferenceChangedEventHandler(
           this.UserPreferenceChanged);
        base.Dispose( disposing );
    }
    
  6. Uygulamayı çalıştırmak için F5'e basın.

Önemli bilgileri ses dışındaki yollarla uygulamaya göre

Bu uygulamada, hiçbir bilgi yalnızca ses ile değil. Uygulamanızda ses kullanıyorsanız, bu bilgileri başka bir yöntemle de sağlamanız gerekir.

Daha fazla bilgi için sesinden farklı bir şekilde bilgi sağlamak için

  1. Windows apı işlevi flashwindow kullanarak başlık çubuğunu flash yapın. Windows apı işlevlerinin nasıl çağrılacağını gösteren bir örnek için bkz. izlenecek yol: Windows apı 'leri çağırma.

    Not

    kullanıcı Windows ses nöbetçisi hizmeti etkin olabilir, bu da sistem seslerinin bilgisayarın yerleşik konuşmacı aracılığıyla çalınması durumunda pencerenin yanıp sönmesine neden olur.

  2. Kullanıcının yanıt verebilmesi için, önemli bilgileri kalıcı olmayan bir pencerede görüntüleyin.

  3. Klavye odağını elde eden bir ileti kutusu görüntüler. Kullanıcı yazmayabilir, bu yöntemden kaçının.

  4. Görev çubuğunun durum bildirimi alanında bir durum göstergesi görüntüleyin. ayrıntılar için bkz. Windows Forms notifyıcon bileşeni ile görev çubuğuna uygulama simgeleri ekleme.

Uygulamayı Test Etme

Uygulamayı dağıtılmadan önce, uygulamakta olduğunuz erişilebilirlik özelliklerini sınamalısınız.

Erişilebilirlik özelliklerini test etmek için

  1. Klavye erişimini test etmek için fare bağlantısını çıkarın ve yalnızca klavyeyi kullanarak her bir özellik için Kullanıcı arabirimine gidin. Tüm görevlerin yalnızca klavye kullanılarak gerçekleştirildiğinden emin olun.

  2. Yüksek Karşıtlık desteğini test etmek için Denetim Masası 'nda erişilebilirlik seçenekleri simgesini seçin. Görüntü sekmesine tıklayın ve Yüksek Karşıtlık Kullan onay kutusunu seçin. Renk ve yazı tipi değişikliklerinin yansıtıldığından emin olmak için tüm Kullanıcı Arabirimi öğelerine gidin. Ayrıca, metnin arkasında çizilen görüntülerin veya desenlerin atlandığından emin olun.

    Not

    Windows NT 4 ' te denetim masası 'nda erişilebilirlik seçenekleri simgesi yok. bu nedenle, systemınformation. highkontrast ayarını değiştirmeye yönelik bu yordam Windows NT 4 ' te çalışmaz.

  3. Diğer araçlar, bir uygulamanın erişilebilirliğini test etmek için hazırdır.

  4. Klavye odağını ortaya çıkaran test etmek için büyüteci çalıştırın. (Açmak için Başlat menüsüne tıklayın, Programlar' ın, Donatılar' ın, Erişilebilirlik' in üzerine gelin ve ardından Büyüteç' e tıklayın). Kullanıcı arabiriminde hem klavye sekmeyi hem de fareyi kullanarak gezinin. Tüm gezintinin Büyüteç'te düzgün şekilde izlendiğinden emin olun.

  5. Ekran öğelerini ortaya çıkarmayı test etmek için Inceleme çalıştırın ve her bir öğeye ulaşmak için hem fareyi hem de sekme tuşunu kullanın. Inceleme penceresinin Ad, durum, rol, konum ve değer alanlarında sunulan bilgilerin, Kullanıcı ARABIRIMINDEKI her nesne için anlamlı olduğundan emin olun.