dart-lang/dart-web-components — pull request #120 by sqs (2012-10-25 11:18:01+00:00)
Title: Use InputElement value setter instead of attributes map in binding

Makes bindings on InputElement value use the `elem.value=` setter, not `elem.attributes['value']=`. This is because the "value" attribute is a fallback to the "value" property. The included test demonstrates how setting the attribute, not the property, can easily break a common usage pattern. (It simulates what happens when a user enters text into an ``, which sets the "value" property, and Dart's subsequent assignment to the "value" attribute, which does not change the input element's "value" property.)

This addresses a specific instance of https://github.com/dart-lang/dart-web-components/issues/112 (use setters to update DOM on data bindings). Fixing this for InputElement.value (and perhaps .checked) seems valuable enough to special-case this (as I've done), even before a general html5lib solution is ready.