<!--
  Note: if the issue is about documentation or the website, please file it at:
  https://github.com/reactjs/reactjs.org/issues/new
-->

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

A bug.

**What is the current behavior?**

When using
```html
<img crossOrigin="anonymous"/>
```
it is rendered as
```html
<img crossOrigin="anonymous">
```

**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Your bug will get fixed much faster if we can run your code and it doesn't have dependencies other than React. Paste the link to your JSFiddle (https://jsfiddle.net/Luktwrdm/) or CodeSandbox (https://codesandbox.io/s/new) example below:**

https://jsfiddle.net/upsuper/y9q5fp3t/

**What is the expected behavior?**

`crossOrigin` should be lower-cased when rendering.

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

Latest version.

(This is basically just #14216, but that was closed because HTML attribute name is case-insensitive. However, this is still a problem for SVG, since SVG attribute name is case-sensitive, and thus `crossOrigin` doesn't work.)
/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow
 */
import warning from 'shared/warning';
type PropertyType = 0 | 1 | 2 | 3 | 4 | 5 | 6;
export const RESERVED = 0;
export const STRING = 1;
export const BOOLEANISH_STRING = 2;
export const BOOLEAN = 3;
export const OVERLOADED_BOOLEAN = 4;
export const NUMERIC = 5;
export const POSITIVE_NUMERIC = 6;
export type PropertyInfo = {|
  +acceptsBooleans: boolean,
  +attributeName: string,
  +attributeNamespace: string | null,
  +mustUseProperty: boolean,
  +propertyName: string,
  +type: PropertyType,
|};