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

**What is the current behavior?**
In mobile Safari, DOM events originating from elements rendered through a Portal do **not** bubble (propagate) up the React component tree.

**If the current behavior is a bug, please provide the steps to reproduce....**
Please see the following JSFiddle: https://jsfiddle.net/zebulonj/wf7orwan/

In this JSFiddle, the expected behavior (seen in a desktop browser) is that clicking on the portal content (appearing as a modal, including backdrop) should toggle to the "On" or "Off" indicator rendered in the main content. However, in mobile Safari (iOS 11.1.1), the click events do not propagate.


**What is the expected behavior?**
Click events should propagate up the React component tree.

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

const NORMALIZE_NEWLINES_REGEX = /\r\n?/g;
  const NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\u0000|\uFFFD/g;
  normalizeMarkupForTextOrAttribute = function(markup: mixed): string {
    const markupString =
      typeof markup === 'string' ? markup : '' + (markup: any);
    return markupString
      .replace(NORMALIZE_NEWLINES_REGEX, '\n')
      .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');
  };
  warnForTextDifference = function(
    serverText: string,
    clientText: string | number,
  ) {
    if (didWarnInvalidHydration) {
      return;
    }
    const normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);
    const normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);
    if (normalizedServerText === normalizedClientText) {
      return;
    }
    didWarnInvalidHydration = true;
    warningWithoutStack(
      false,
      'Text content did not match. Server: "%s" Client: "%s"',
      normalizedServerText,
      normalizedClientText,