Repository: adobe/react-spectrum
File: packages/@react-spectrum/textfield/src/TextFieldBase.tsx (TypeScript)

Code before:
    getInputElement() {
      return inputRef.current;
    }
  }));

  let ElementType: React.ElementType = multiLine ? 'textarea' : 'input';
  let isInvalid = validationState === 'invalid' && !isDisabled;

  if (icon) {
    let UNSAFE_className = classNames(
      styles,
      icon.props && (icon.props as any).UNSAFE_className,
      'spectrum-Textfield-icon'
    );

    icon = cloneElement(icon, {
      UNSAFE_className,
      size: 'S'
    } as any);
  }

  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/textfield');
  let validId = useId();
  let validationIcon = isInvalid
    ? <AlertMedium />
    : <CheckmarkMedium id={validId} aria-hidden aria-label={stringFormatter.format('valid')} />;
  let validation = cloneElement(validationIcon, {
    UNSAFE_className: classNames(
      styles,
      'spectrum-Textfield-validationIcon',
      validationIconClassName
    )
  });

  let {focusProps, isFocusVisible} = useFocusRing({
    isTextInput: true,
    autoFocus
  });

  let textField = (
    <div
      className={
        classNames(
          styles,
          'spectrum-Textfield',
          {
            'spectrum-Textfield--invalid': isInvalid,
            'spectrum-Textfield--valid': validationState === 'valid' && !isDisabled,
            'spectrum-Textfield--loadable': loadingIndicator,
            'spectrum-Textfield--quiet': isQuiet,
            'spectrum-Textfield--multiline': multiLine,

Review comment (suggestion):
Field will still announce valid due to the `aria-describedBy`, just preventing Talkback and NVDA from thinking the Checkmark should be focusable  

Code after:
    getInputElement() {
      return inputRef.current;
    }
  }));

  let ElementType: React.ElementType = multiLine ? 'textarea' : 'input';
  let isInvalid = validationState === 'invalid' && !isDisabled;

  if (icon) {
    let UNSAFE_className = classNames(
      styles,
      icon.props && (icon.props as any).UNSAFE_className,
      'spectrum-Textfield-icon'
    );

    icon = cloneElement(icon, {
      UNSAFE_className,
      size: 'S'
    } as any);
  }

  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/textfield');
  let validId = useId();
  let validationIcon = isInvalid
    ? <AlertMedium />
    : <CheckmarkMedium id={validId} aria-hidden aria-label={stringFormatter.format('valid')} />;
  let validation = cloneElement(validationIcon, {
    UNSAFE_className: classNames(
      styles,
      'spectrum-Textfield-validationIcon',
      validationIconClassName
    )
  });

  // Add validation icon IDREF to aria-describedby when validationState is valid
  let inputPropsAriaDescribedBy = inputProps['aria-describedby'];
  if (
    !isInvalid && validationState === 'valid' && !isLoading && !isDisabled &&
    (!inputPropsAriaDescribedBy || !inputPropsAriaDescribedBy.includes(validId))
  ) {
    inputProps['aria-describedby'] = [inputPropsAriaDescribedBy, validId].join(' ').trim();
  }

  let {focusProps, isFocusVisible} = useFocusRing({
    isTextInput: true,
    autoFocus
  });

  let textField = (
    <div
      className={