Graphics Primitive Filtering for Accessibility Mirror Drivers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing accessibility technologies face a 'blind spot' issue where screen readers cannot describe content under magnifier windows due to the full set of graphics primitives being present in the rendering stream, leading to incomplete display data, especially when using accessibility mirror drivers and magnification APIs.
Innovation Solution
A filtering mechanism that selectively controls the provision of graphics primitives to drivers based on window identifiers and driver classes, allowing only certain drivers to receive specific primitives, thereby excluding others from the rendering stream.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If accessibility mirror drivers are used to enable screen readers to describe screen content, then accessibility functionality is improved, but the full set of graphics primitives being present in the rendering stream causes a blind spot problem where screen readers cannot distinguish or locate which primitives are under the magnifier window
Solution Approach 1:
The rendering stream is segmented by driver class, separating accessibility mirror drivers from other drivers. The filtering mechanism divides the primitive distribution so that accessibility mirror drivers receive only a subset of primitives (excluding magnifier window primitives), while other drivers receive the full set. This segmentation resolves the blind spot problem by ensuring screen readers operate on clean display data without magnifier interference.
Solution Approach 2:
Different quality of primitive provision is applied to different driver classes. Accessibility mirror drivers receive filtered primitives (excluding magnifier content), while other drivers receive complete primitives. This local differentiation allows screen readers to maintain accurate display models while preserving full rendering capability for other purposes.
2Illumination intensity
If the magnifier window is made topmost and layered to ensure proper display, then magnification visibility is improved, but accessibility code in mirror drivers becomes unable to distinguish or locate which primitives for the screen are under the magnifier window
Solution Approach 1:
The filtering mechanism acts as an intermediary between the rendering stream and accessibility mirror drivers. It intercepts primitives destined for accessibility drivers and selectively removes those associated with magnifier windows (identified through window handle registration). This intermediary layer preserves magnifier visibility while protecting the accessibility data stream from contamination.
Solution Approach 2:
Magnifier window handles are registered in advance with the filtering mechanism before rendering occurs. This preliminary registration enables the filter to proactively identify and exclude magnifier primitives from the accessibility driver stream, preventing the blind spot problem before it occurs rather than attempting to detect it afterward.
3Adaptability or versatility
If chained display drivers are used to implement magnifiers, then magnification functionality is achieved, but the driver's rendering primitives associated with the magnification window handle are not present in the rendering stream intercepted by the chained display driver
Solution Approach 1:
Instead of using chained drivers where the magnifier driver sits above the primary driver and intercepts primitives (causing the magnifier primitives to be missing from the accessibility stream), the invention inverts the approach by using peer mirror drivers that attach to the primary driver at the same level. The filtering mechanism then selectively removes magnifier primitives from reaching accessibility drivers, achieving the opposite effect: accessibility drivers receive complete information except for magnifier content, which is deliberately excluded.
Data Source
AI summary
Described is a filtering mechanism/process that selectively controls whether graphics primitives are provided to a given driver. For example, graphics primitives of an accessibility (e.g., magnification) program may be excluded from being obtained by mirror drivers associated with the accessibility programs, so that the mirror drivers receive only the primitives of unmagnified windows. A registration mechanism allows a program to identify its window as being associated with a class of drivers for filtering, and the drivers may identify themselves as being of the class. By maintaining data that associates windows with a class of drivers, when graphics primitives associated with a registered window are received, a filtering operation be activated to determine which graphics primitives are provided to which driver or drivers. Filtering may be by exclusion to prevent certain primitives from being obtained by excluded drivers, or by inclusion whereby only included drivers receive certain primitives.


