MFC Ribbon and screen readers? RRS feed

  • Question

  • I have inherited an application which uses the CMFCRibbon class, and am being asked to expose its functionality to screen reading software such as JAWS.  I do not have JAWS available to me for testing, but have been using the windows narrator instead.

    In my application, the windows narrator will read tool tips when I mouse over buttons, but just activating focus on the application's main window produces only the window title and the phrase "data grip".  Using inspect.exe from the windows 8 SDK, I see that in my application's hierarchy, the afxRibbonclass object does not appear to have any children, and no attributes under the LegacyIAccessible hierarchy are visible.  If I mouse over ribbon elements to activate them in the Inspector, there are still no LegacyIAccessible attributes, but the Ancestors do appear, all the way up to my application's root.

    I read articles like which indicate that the MFC Ribbon has poor/negligible exposure to the UI tools and suspect that this means that the MFC Ribbon is very hard to expose to a screen reader (whereas other ribbon frameworks may "just work"), but I am not confident in such conclusions.

    Will it be easier to retrofit screen reader support into the MFC Ribbon (how?), or rewrite the application's ribbon use in a more modern framework?

    • Edited by Ben Kaduk Thursday, June 6, 2013 3:54 PM missed word "narrator" in "windows narrator"
    Tuesday, June 4, 2013 10:25 PM

All replies

  • Hi,
    Welcome back.
    I will involve more experts to investigate it. It may be some times delayed.
    If you are urgent about this issue, please call the paid Microsoft Support.
    Have a nice day.

    Elegentin Xie
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Thursday, June 6, 2013 7:46 AM
  • I guess you're talking about Accessibility support (correct me if I'm wrong) for feature pack controls in Visual studio 2008 and 2010. This is a known issue and its fixed in Visual studio 2012. The effort required to fix this in prior versions of visual studio is bit too much (chances of affecting existing functionality are high) hence the product group decided to fix this in Visual Studio 2012 only. Sorry for the inconvenience caused.

    Will it be feasible for you to move to Visual Studio 2012?


    Posts are provided as is without warranties or guaranties.

    • Proposed as answer by Spam filter Wednesday, June 19, 2013 6:27 AM
    Wednesday, June 12, 2013 11:54 AM
  • I will give Visual Studio 2012 a try, thanks for the reply!
    Tuesday, June 18, 2013 8:04 PM
  • Using Visual Studio 2012, my observed behavior is rather different than with Visual Studio 2010.  It is better in some ways and worse in others.

    Upon giving focus to my application window, the windows narrator reads the contents of the title bar, "data grip", and then the QAT button and the rest of the visible ribbon controls.  However, mouseover events no longer cause the narrator to read the relevant tool tip (with VS2010 the tool tips were read on mouseover), and I am unable to cause the narrator to read any information about the ribbon controls by using the keyboard to navigate, and this seems likely to be a blocker for us if the windows narrator is indicative of the behavior of other screen readers.

    I am more inclined to suspect that programmer error is responsible for these symptoms (though I note for completeness that my quick testing with VS2012 was a 32-bit app on 64-bit windows 7), but don't have a good sense of how likely that is to be the case.  Could this behavior be caused by failing to handling WM_GETOBJECT events in some handler?

    Wednesday, June 19, 2013 10:20 PM