Skip to content

Conversation

@seadowg
Copy link
Member

@seadowg seadowg commented Jan 16, 2026

Closes #333
Closes #332

This adds the changes we've made to support the invalid polygon feature set. Definitely open to discussing where each detail should live!

@seadowg seadowg requested a review from lognaturel January 16, 2026 16:23
| <a id="data-type:geopoint" href="#data-type:geopoint">`geopoint`</a> | Space-separated list of valid latitude (decimal degrees), longitude (decimal degrees), altitude (decimal meters) and accuracy (decimal meters)
| <a id="data-type:geotrace" href="#data-type:geotrace">`geotrace`</a> | Semi-colon-separated list of at least 2 geopoints, where the last geopoint's latitude and longitude is not equal to the first
| <a id="data-type:geoshape" href="#data-type:geoshape">`geoshape`</a> | Semi-colon-separated list of at least 3 geopoints, where the last geopoint's latitude and longitude is equal to the first
| <a id="data-type:geotrace" href="#data-type:geotrace">`geotrace`</a> | Semi-colon-separated list of at least 2 geopoints, where the last geopoint's latitude and longitude is not equal to the first.<br><br>If an `input` with this type has the `incremental` attribute with the value `true`, any change to the value such as moving a vertex, adding a vertex, removing a vertex results in validating the new value and showing a constraint message if the constraint is violated. Clients may additionally choose to block the addition of new points when a constraint is violated to draw user attention to the problem. Clients may choose to recalculate and revalidate the whole form or not depending on performance considerations and how they display geo questions.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apparently <br> is the only way to get a paragraph break in tables in Markdown!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I suggest also considering the following diff which says only the minimum required behaviour

If an input with this type has the incremental attribute with the value true, any interactive change to the form control input value must trigger validation of the new value.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know it's pretty verbose, but I prefer the more specific text for now unless you're very against it?

| control | description
|---------------|------------
|`<input>` | This element is used to obtain user input for data types: string, integer, decimal, and date. As in [XForms 1.0](https://www.w3.org/TR/2003/REC-xforms-20031014/slice8.html#ui-input) without Special Attributes support.
|`<input>` | This element is used to obtain user input for data types: string, integer, decimal, and date. As in [XForms 1.0](https://www.w3.org/TR/2003/REC-xforms-20031014/slice8.html#ui-input) without Special Attributes support. This is with the exception of when the `geotrace` or `geoshape` types are used - in that case, `incremental` is supported.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wonder why ODK went with appearance instead of inputmode URIs

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that is lost to history! I would say in general JavaRosa was originally inspired by W3C XForms but did not aspire to follow it strictly. Over time we've tried to align them where possible but ODK XForms is still very much a separate spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

describe behaviour of incremental control attribute Add intersects function

3 participants