#### Type
`inconsistency` for common use cases.
`bug` for projects relying on correct DOM emissions.

#### Description
It's unclear to me if the following is a known issue or not.
Take in consideration the snippet below:
```jsx
<input type="checkbox" defaultChecked={true} />
```
#### Current Behavior
Setting the `defaultValue` prop on inputs of other types sets both the `value` and `defaultValue` attribute on the DOM element.

When setting the `defaultChecked` prop on inputs of type `checkbox` only the `checked` attribute is correctly set, leaving the `defaultChecked` attribute unchanged.

#### Expected Behaviour
Like mentioned above, the expected behavior would be for the `defaultChecked` prop to set both the `checked` and `defaultChecked` attributes on the corresponding DOM node (like it's the case with the `defaultValue` prop).

onChange={e => this.setState({value: e.target.value})}
              value={this.state.value}
            />
          );
        }
      }
      const stub = ReactTestUtils.renderIntoDocument(<Input />);
      input = ReactDOM.findDOMNode(stub);
      ReactTestUtils.Simulate.change(input, {target: {value: 'latest'}});
      ReactTestUtils.Simulate.change(input, {target: {value: undefined}});
    }
    it('reverts the value attribute to the initial value', () => {
      expect(renderInputWithStringThenWithUndefined).toWarnDev(
        'Input elements should not switch from controlled to ' +
          'uncontrolled (or vice versa).',
      );
      expect(input.getAttribute('value')).toBe('first');
    });
    it('preserves the value property', () => {
      expect(renderInputWithStringThenWithUndefined).toWarnDev(
        'Input elements should not switch from controlled to ' +
          'uncontrolled (or vice versa).',
      );
      expect(input.value).toBe('latest');
    });
  });
  describe('setting a controlled input to null', () => {
    let input;
    function renderInputWithStringThenWithNull() {
      class Input extends React.Component {