For input, value only sets the INITIAL value in HTML — after user interaction, the real current value is read via the JS .value property, not the attribute.
For checkbox/radio, value defines what gets submitted when checked, not the checked state itself (that's the checked attribute).