{"id":300,"date":"2016-04-18T20:41:05","date_gmt":"2016-04-18T18:41:05","guid":{"rendered":"http:\/\/www.webbie.org.uk\/blog\/?p=300"},"modified":"2016-04-18T20:41:05","modified_gmt":"2016-04-18T18:41:05","slug":"msaa-uia-and-winforms-in-net","status":"publish","type":"post","link":"https:\/\/www.webbie.org.uk\/blog\/msaa-uia-and-winforms-in-net\/","title":{"rendered":"MSAA, UIA and WinForms in .Net"},"content":{"rendered":"<p>Another item for programmers, more on UIA and MSAA and developing accessible user interfaces, following on from <a href=\"\/blog\/msaa-uia-and-wpf\/\">using WPF\/XAML with MSAA and UIA.<\/a><\/p>\n<p>This is a super-quick guide to using WinForms to make UIs that work well with screenreaders like NVDA or Thunder or JAWS. <\/p>\n<ul>\n<li>You don\u2019t need to do anything to <code>Button<\/code>, <code>CheckBox<\/code>, <code>MenuItem<\/code> or <code>MenuStrip<\/code> controls  &#8211; other than put some text on them! Image-only controls are no good. It&#8217;s fine if only the image is shown to the end user and the text is hidden.\n<li>You can correctly label content controls that don&#8217;t have a <code>Text<\/code> property, like <code>TextBox<\/code>, <code>ListBox<\/code>, <code>ListView<\/code>, <code>ComboBox<\/code>, <code>ProgressBar<\/code> and the like, in one of two ways:\n<ul>\n<li>Put a <code>Label<\/code> just before the control you want to label in the tab index order. The <code>Text<\/code> on the <code>Label<\/code> labels the control. Use the <code>TabIndex<\/code> property to make sure the order is correct.\n<li>Set the <code>AccessibleName<\/code> property on the content control itself. This labels the control for the screenreader.\n<\/ul>\n<li><code>Groupbox<\/code> controls don\u2019t label their contents, use one of the other techniques here.\n<li>You almost certainly want to avoid labelling <code>Panel<\/code> controls, since they are generally for layout, which is communicated to the screenreader user in other ways than labeling.\n<li>For <code>WebBrowser<\/code> controls you need to think about the content in terms of web accessibility \u2013 use <code>label<\/code> elements, ARIA, and other HTML accessibility techniques. You might also need to label the actual <code>WebBrowser<\/code> control on your form with a <code>Label<\/code> or <code>AccessibleName<\/code>, just like any other content control.\n<\/ul>\n<p>Unsurprisingly, these techniques are basically the same as writing forms using the Windows C++ API, since WinForms is a wrapper round that. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Another item for programmers, more on UIA and MSAA and developing accessible user interfaces, following on from using WPF\/XAML with MSAA and UIA. This is a super-quick guide to using WinForms to make UIs that work well with screenreaders like NVDA or Thunder or JAWS. You don\u2019t need to do anything to Button, CheckBox, MenuItem &hellip; <a href=\"https:\/\/www.webbie.org.uk\/blog\/msaa-uia-and-winforms-in-net\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;MSAA, UIA and WinForms in .Net&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,20],"tags":[50,36,51,52],"class_list":["post-300","post","type-post","status-publish","format-standard","hentry","category-blind","category-microsoft","tag-msaa","tag-programming","tag-uia","tag-winforms"],"_links":{"self":[{"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/posts\/300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/comments?post=300"}],"version-history":[{"count":5,"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/posts\/300\/revisions"}],"predecessor-version":[{"id":305,"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/posts\/300\/revisions\/305"}],"wp:attachment":[{"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/media?parent=300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/categories?post=300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webbie.org.uk\/blog\/wp-json\/wp\/v2\/tags?post=300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}