Skip to content

Commit ed51ade

Browse files
Staacksclaude
andcommitted
Drop input-default-does-not-replace-nan, both apps agree
iOS replaces a NaN at the end of an input element's buffer with the element's default on development since 2026-09-02 (Experiment.seedInputDefaults, the slider included), as Android has since the same day. The entry goes together with its four markers on the default attribute of edit, toggle, dropdown and slider, which are back to agreed; the attribute descriptions already state the rule. Strict build passes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 parent 639b515 commit ed51ade

2 files changed

Lines changed: 4 additions & 36 deletions

File tree

‎inconsistencies.yml‎

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -89,31 +89,3 @@
8989
A non-power-of-two number of input samples yields a different output
9090
length and different values on the two platforms; a power-of-two input
9191
gives identical results on both.
92-
93-
- id: input-default-does-not-replace-nan
94-
title: A NaN in an input element's buffer
95-
area: file-format
96-
status: decided
97-
canonical: >-
98-
The default of an edit, toggle, dropdown or slider replaces a NaN at the
99-
end of its buffer, the same way it fills an empty one: an input control
100-
cannot show NaN and the user could never enter it, so the buffer must not
101-
hold a value the control does not. The default is written as it stands,
102-
not clamped to the element's range, and the replacement does not count as
103-
user input (maintainer, 2026-09-02).
104-
affects:
105-
android: >-
106-
Replaces the NaN on the next input pass, for every view whether or not
107-
its page has been built (ExpView.expViewElement.applyDefault, called
108-
from each element's onMayWriteToBuffers). Since 2026-09-02 on
109-
development; before that only the edit did, and it clamped the default
110-
through its own range and reported the replacement as user input.
111-
ios: >-
112-
Seeds only an EMPTY buffer (Experiment.seedInputDefaults, and the
113-
parser's `if buffer.isEmpty` when the view is read). A buffer whose last
114-
value is NaN is left as it is: the edit box shows "nan", the switch
115-
shows off, and an analysis reading the buffer gets NaN.
116-
summary: >-
117-
A NaN in the buffer of an input control is replaced by the control's
118-
default on Android but stays in the buffer on iOS, where the control shows
119-
something the buffer does not hold.

‎spec/views.yml‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -924,8 +924,7 @@ elements:
924924
its own output.
925925
default: 0.0
926926
summary: Value the field starts with.
927-
agreement: divergent
928-
inconsistency: input-default-does-not-replace-nan
927+
agreement: agreed
929928
- name: output
930929
parent: edit
931930
since: "1.0"
@@ -1045,8 +1044,7 @@ elements:
10451044
its own output.
10461045
default: 0.0
10471046
summary: State the switch starts in.
1048-
agreement: divergent
1049-
inconsistency: input-default-does-not-replace-nan
1047+
agreement: agreed
10501048

10511049
- name: output
10521050
parent: toggle
@@ -1103,8 +1101,7 @@ elements:
11031101
buffers do not contain would leave any analysis reading them with no
11041102
values at all.
11051103
summary: Value the slider starts at.
1106-
agreement: divergent
1107-
inconsistency: input-default-does-not-replace-nan
1104+
agreement: agreed
11081105
- name: precision
11091106
description: >-
11101107
The number of decimal places shown in the field with the
@@ -1190,8 +1187,7 @@ elements:
11901187
its own output.
11911188
default: 0.0
11921189
summary: Value selected initially.
1193-
agreement: divergent
1194-
inconsistency: input-default-does-not-replace-nan
1190+
agreement: agreed
11951191
- name: color
11961192
type: color
11971193
rules: [color-invalid-value]

0 commit comments

Comments
 (0)