See the original report in https://github.com/facebook/react/issues/10772#issuecomment-333242375.

The problem is that SVG is case sensitive, and so naïvely setting `tabIndex` and relying on insensitivity won't work with it.

The good news is it seems like `tabindex` is the only valid [SVG attribute](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute) 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. 
it(`renders ${desc} with clean client render`, () =>
    testFn(clientCleanRender));
  it(`renders ${desc} with client render on top of good server markup`, () =>
    testFn(clientRenderOnServerString));
  it(`renders ${desc} with client render on top of bad server markup`, async () => {
    try {
      await testFn(clientRenderOnBadMarkup);
    } catch (x) {
      
      if (!(x instanceof BadMarkupExpected)) {
        
        throw x;
      }
    }
  });
}
function itThrows(desc, testFn, partialMessage) {
  it(`throws ${desc}`, () => {
    return testFn().then(
      () => expect(false).toBe('The promise resolved and should not have.'),
      err => {
        expect(err).toBeInstanceOf(Error);
        expect(err.message).toContain(partialMessage);
      },
    );
  });
}
function itThrowsWhenRendering(desc, testFn, partialMessage) {