Skip to content

Naming the arguments to intent: new property needed? #524

@NSoiffer

Description

@NSoiffer

When navigating 2D structures with AT, it is very common to name the part of the expression one has navigated to. For example, if you have a fraction, then when you "zoom into" the fraction, you will often hear "in numerator" and/or "end numerator" when leaving it. Same for the denominator. For "msup", "base" and "superscript" (or "exponent") might be used. If an intent is given that is not in core, there is no way for AT to use a concept-specific name when navigating.

As an example of how one could handle this, one could add something like ":navname-xxx" to the arguments. As an example

<math>
    <mrow intent="fraction-like($x, _over_, $y)">
        <mo>\</mo>
        <mtable>
            <mtr><mtd><mi arg='x' intent=':navname-num'>a</mi></mtd></mtr>
            <mtr><mtd><mi arg='y' intent=':navname-denom'>b</mi></mtd></mtr>
        </mtable>
        <mo>/</mo>
    </mrow>
</math>

In this example, the user might hear "fraction-like of a and b end fraction-like" when listening to the expression. If they decide to navigate into it, they might hear "in num, x". Moving right, they might hear "out of num, in denom, y". Without the names, they might hear some generic phrases: "in arg 1" and "out of arg 1, in arg 2 y". That's not ideal, especially when you have nested expressions so that there several "arg 1"s, etc.

We at one point discussed a param=value for properties but felt that was too complex. This is a "data-xxx"-like ugly version of it where AT would could recognize navname- as being important if it is doing navigation and get the name to use by choosing the string that follows it. The main benefit to this approach over the param-value approach is that this doesn't introduce new syntax to the grammar for intent.

Metadata

Metadata

Assignees

No one assigned

    Labels

    intentIssues involving the proposed "intent" attr

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions