Change:
See the original report in The problem is that SVG is case sensitive, and so naïvely setting and relying on insensitivity won't work with it. The good news is it seems like is the only valid with this problem. We just missed it because it applies both to HTML and SVG. I think the fix is to add it back to the whitelist.
simple example where tabbing works & doesn't work depending on case Note that the console does not state the error did you mean not being Not really sure why this is but it does display in our app.
Thanks for confirming this issue, I've been struggling to identify the reason my svg component stopped working after the update. A component made of clickable <circleshave lost both focus and blur functionality, because "tabIndex" is rendered in the camelCase style and then ignored by the browser. I've tried adding the property "tabindex" to the <circletag in the jsx, but it was swallow by React and not rendered to the final component.
React has been released. Please update , , and (if you use it) to this version and let us know if it solved the issue! We’d appreciate if you could test before Monday when we plan to get out.
apologies just seeing this message now. Yes. The issue is resolved with the beta, rc & 16.1

Discussion:
| `tabIndex=(string 'false')`| (initial)| `<number: -1>` | | `tabIndex=(string 'on')`| (initial)| `<number: -1>` | | `tabIndex=(string 'off')`| (initial)| `<number: -1>` | <del> | `tabIndex=(symbol)`| (initial, warning)| `<number: -1>` | </del> <ins> | `tabIndex=(symbol)`| (initial, warning, ssr error, ssr mismatch)| `<number: -1>` | </ins> | `tabIndex=(function)`| (initial, warning)| `<number: -1>` | | `tabIndex=(null)`| (initial)| `<number: -1>` | | `tabIndex=(undefined)`| (initial)| `<number: -1>` |

| `tabIndex=(array with string)`| (initial)| `<number: -1>` | | `tabIndex=(empty array)`| (initial)| `<number: -1>` | | `tabIndex=(object)`| (initial)| `<number: -1>` | <del> | `tabIndex=(numeric string)`| (initial, ssr mismatch)| `<number: -1>` | </del> <ins> | `tabIndex=(numeric string)`| (changed)| `<number: 42>` | </ins> | `tabIndex=(-1)`| (initial)| `<number: -1>` | <del> | `tabIndex=(0)`| (initial, ssr mismatch)| `<number: -1>` | | `tabIndex=(integer)`| (initial, ssr mismatch)| `<number: -1>` | </del> <ins> | `tabIndex=(0)`| (changed)| `<number: 0>` | | `tabIndex=(integer)`| (changed)| `<number: 1>` | </ins> | `tabIndex=(NaN)`| (initial, warning)| `<number: -1>` | <del> | `tabIndex=(float)`| (initial, ssr mismatch)| `<number: -1>` | </del> <ins> | `tabIndex=(float)`| (changed)| `<number: 99>` | </ins> | `tabIndex=(true)`| (initial, warning)| `<number: -1>` | | `tabIndex=(false)`| (initial, warning)| `<number: -1>` | | `tabIndex=(string 'true')`| (initial)| `<number: -1>` | | `tabIndex=(string 'false')`| (initial)| `<number: -1>` | | `tabIndex=(string 'on')`| (initial)| `<number: -1>` | | `tabIndex=(string 'off')`| (initial)| `<number: -1>` | <del> | `tabIndex=(symbol)`| (initial, warning)| `<number: -1>` | </del> <ins> | `tabIndex=(symbol)`| (initial, warning, ssr error, ssr mismatch)| `<number: -1>` | </ins> | `tabIndex=(function)`| (initial, warning)| `<number: -1>` | | `tabIndex=(null)`| (initial)| `<number: -1>` | | `tabIndex=(undefined)`| (initial)| `<number: -1>` |

// Style must be explicitly set in the attribute list. React components // expect a style object style: 0, <ins> // Keep it in the whitelist because it is case-sensitive for SVG. tabIndex: 0, </ins> // itemScope is for for Microdata support. // See http://schema.org/docs/gs.html itemScope: HAS_BOOLEAN_VALUE,

); }); <ins> itRenders('svg element with a tabIndex attribute', async render => { let e = await render(<svg tabIndex="1" />); expect(e.tabIndex).toBe(1); }); itRenders( 'svg element with a badly cased tabIndex attribute', async render => { let e = await render(<svg tabindex="1" />, 1); expect(e.tabIndex).toBe(1); }, ); </ins> itRenders('a math element', async render => { const e = await render(<math />); expect(e.childNodes.length).toBe(0);