• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Page Information

    Loading...
  1. Dashboard
  2. Undefined Space
  3. OpenJFX
  4. A11y TODO

Page History

Versions Compared

Old Version 22

changes.mady.by.user Felipe Heidrich

Saved on Mar 17, 2014

compared with

New Version 23

changes.mady.by.user Felipe Heidrich

Saved on Mar 18, 2014

  • Previous Change: Difference between versions 21 and 22
  • Next Change: Difference between versions 23 and 24
  • View Page History

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Use Jira Search

OLD TODO (in process to port this to Jira)

...

  •  NO  - View.getAccessible() should follow the notify*() pattern to reflect that it's a native callback. Anthony Petrov
  •  YES -  Classes in win/, mac/, etc. should start with a Win*, Mac*, etc. prefixes (as much as I don't like the naming scheme, we should stick to the pattern to avoid confusion).
  •  NO -   Use javaIDs instead of statics for MIDs in GlassAccessible.cpp
  •  YES -  Perhaps instead of using the PlatformFactory, we should add a new factory method to the Application class in Glass.
  •  Support Windows 7. Currently GlassAccessibility extends ISelectionItemProvider, which is only supported since Windows 8. We may want to eliminate the direct code dependency on Win8 interfaces and use some dynamic techniques to support both Win8 & Win7. Anthony Petrov
    The problem is that after trying to expand the FX window in the UISpy tree, the get_HostRawElementProvider() in GlassAccessible gets a NULL hwnd from Java code, then it passes it to UiaHostProviderFromHwnd(). The latter function reports an error E_INVALIDARG. Windows 8 just eats it and proceeds, but Windows 7 can't do so for some reason. I suppose we should make sure the HWND is never NULL (it shouldn't be, really). Investigating further...
    Fixed by returning S_OK from get_HostRawElementProvider().
  •  YES - Fix lines indentations
  •  RadioGroup. AccessibleProvider.
  •  (Factory, Variant prefix, IAccessibleProvider - DONE), Combo, Popup, Menu - Anthony
  •  Avoid Class Cast exceptions - right now PlatformAccessible expects the type from getAttribute() to match, need to add checks and fail gracefully.
  •  Check for Leaks. Make sure the native peers are being disposed (i.e, when the respective node is removed from the scene)
  •  On Off switch. Add command line option to disable a11y, initially default to off.
  •  A11y support enums and classes should probably be moved to javafx.scene.accessibility package rather than be in the scene package itself.
  •  Parfait - have at least one parfait run and make sure the new code does not add parfait problems to JFX
  •  Findbugs - have at least one findbugs run and make sure the new code does not add findbug problems to JFX
  •  Public API, better names for all the accGet, accSend, accExecute, etc. Overall API polishness.
  •  Finish more controls: See Controls Accessibility
  •  Fix lists/tables on Mac OS X 10.8 (they work on 10.9 but not on 10.8)
  •  Get rid of debug prints to stdout and error (replace will log message or use a debug flag)
  •  NULL checks in native code to avoid memory corruption
  •  Rename STRING_VALUE to ???
  •  Node.labeledBy - use an accessor
  •  Hide getAccessible() and the Accessible class from public API (IGNORE, see next item)
  •  Why do we even need the Accessible class? It only delegates to PlatformAccessible. In Node/Scene we always override its methods and actually delegate to their acc*() counter-parts. So why not use the PlatformAccessible directly.
  •  Async disposal of Accessible, Replace Scene#pulse mechanism with ReferenceQueue (could be done at the same time as the previous item)
  •  Ensure calls to accSendNotification() are in fact be called in all cases. For exemple, ListView#focus(int) sends listView.accSendNotification(Attribute.SELECTED_ROWS), is that reliable ? (For example, if the focus model was replaced in the ListView, would it break the notification).
  •  PlatformAccessible#getNativeAccessible() ideally should be private for package visible (not protected).


...

Overview
Content Tools
ThemeBuilder

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.23
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 5541, "requestCorrelationId": "8d09c13c6b3a84e5"}