static checkAttributeValidity(input) {
    if (!input.autocomplete.attribute) return {hasValidTokens: false};
    const tokenArray = input.autocomplete.attribute.split(' ');
    for (const token of tokenArray) {
      // A `section-` prefix indicates a unique autofill scope.
      // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#:~:text=section-
      if (token.slice(0, 8) === 'section-') continue;
      if (validAutocompleteTokens.includes(token)) continue;
      return {hasValidTokens: false};
    }
    // If all autocomplete tokens are valid but there is still no property attribute, then that means the tokens are out of order.
    // https://cloudfour.com/thinks/autofill-what-web-devs-should-know-but-dont/#all-the-tokens
    if (!input.autocomplete.property) return {hasValidTokens: true, isValidOrder: false};
    return {hasValidTokens: true, isValidOrder: true};
  }
@param {LH.Artifacts.InputElement} input
@return {{hasValidTokens: boolean, isValidOrder?: boolean}}