**Do you want to request a *feature* or report a *bug*?**
bug

**What is the current behavior?**
If there is a client/server mismatch for text inside of an a or button element, it causes it to be automatically focused on page load.

**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://jsfiddle.net or similar (template for React 16: https://jsfiddle.net/Luktwrdm/, template for React 15: https://jsfiddle.net/hmbg7e9w/).**
```
let text;
let URL = '/randomURL';
if (typeof window !== 'undefined') {
  text = 'CLIENT TEXT';
} else {
  text = 'TEXT';
}

return (
  <a href={URL}>
    {text}
  </a>
);
```

if the focus is not on the window (i.e. if a dom element is selected in the chrome inspector or react inspector widnow), then it doesn't add the focus.

**What is the expected behavior?**
The expected behavior is that it would either show CLIENT TEXT or TEXT (depending on how React16 resolves the diff), but for it not to be automatically highlighted 

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**
React16 / macosx / chrome + ff + safari
</div>,
    );
    if (__DEV__) {
      expect(console.error.calls.count()).toBe(2);
      expect(console.error.calls.argsFor(0)[0]).toBe(
        'Warning: <inPUT /> is using uppercase HTML. Always use lowercase ' +
          'HTML tags in React.',
      );
      
      expect(console.error.calls.argsFor(1)[0]).toBe(
        'Warning: <iFrame /> is using uppercase HTML. Always use lowercase ' +
          'HTML tags in React.',
      );
    }
  });
  it('should warn about contentEditable and children', () => {
    spyOnDev(console, 'error');
    ReactDOMServer.renderToString(<div contentEditable={true} children="" />);
    if (__DEV__) {
      expect(console.error.calls.count()).toBe(1);
      expect(normalizeCodeLocInfo(console.error.calls.argsFor(0)[0])).toBe(
        'Warning: A component is `contentEditable` and contains `children` ' +
          'managed by React. It is now your responsibility to guarantee that ' +
          'none of those nodes are unexpectedly modified or duplicated. This ' +
          'is probably not intentional.\n    in div (at **)',
      );
    }
  });
  it('should throw rendering portals on the server', () => {
    const div = document.createElement('div');