Before the product

Credit card.
See the product first.

A card field before the product stops the walk. A line that says no card is required does not.

The short answer

Let people see the product before the card form. Don't ask for a card on the way in, and don't ask for one the moment the account exists. The line “No credit card required” is copy. Stumblet ignores it.

Walk your signup
Stumblet, an apricot clay character with a navy collar, exploring with a folded map and a yellow note on its head.

Why the card stops the signup

You came to try it. The free trial is why you stayed. Then the page wants a card number, an expiry, and a security code, or a card frame sitting in the form. You have not seen the product. Stumblet stops on that screen. It does not type a card to find out what happens next.

The sentence “No credit card required” used to be read as a card. That was a false positive. Copy is not a card input, and it is not a card frame. “A card is required” is the same kind of line. It does not stop for a card, and it does not call the screen Payment.

What Stumblet flags

  1. 1Card form in the signup

    A card input or a card frame on the page. The title is “Card form in the signup.” The fix is “Let people see the product before the card form.” The line is “A card field is on the page, and I don't type a card to try this.” The rank is 45. The screen is named Payment. The step says “Stopped. Didn't type a card.” The fields on that screen are left empty, and the button is not pressed.

    A card input is a visible field whose autocomplete contains cc-number, cc-csc, cc-exp, or cc-name, or whose type, label, name, placeholder, or autocomplete contains card number, cvv, cvc, security code, expiry, or expiration. Card number includes card-number and cardnumber. Credit card, with no number, does not match. A hidden input is not read.

    A card frame is an iframe whose address, name, title, aria-label, or id matches a card frame, or a mount with the id card-element, the class StripeElement, or the attribute data-elements-stable-field-name. A fraud or metrics frame is not a card, and neither is an m-outer frame that is not a card. The questions below have the exact strings. When a frame is found and the narrower card check found no input, the walker adds a field labelled Card number. The saw line then lists that field. If the frame is noted and the field list still has no card input, the saw line adds “A card field is on the page.”

    A human check on the same page wins the stop. The heading stays, the reaction is the human check, and the step says a human check is on the page. The card finding is still recorded when the card input or the card frame is there.

    A card screen with no trust mark also gets “No person and no company on this screen.” The fix is “Put a person, a company name, and a city on this card step.” The line is “A card field is on the page, and there's no person or company beside it.” The rank is 24. The marks are the words privacy, terms, founder, our team, and testimonial, and the suffixes inc., ltd., llc, and gmbh. One of them is enough. This note is a template finding, so it sits behind the card finding.

    A card screen with no price also gets “Price isn't on this screen.” The words free trial, free plan, or free tier count as a price named Free trial, so that note does not fire for them. A price such as £15 a month counts too. The rank is 32, and this note is a template finding, so the card finding stays above it.

    When this finding is the one drawn, the after side drops a field whose label says card number, cvv, cvc, security code, expiry, or expiration. Other labels on that mock stay. A password that was drawn stays. If nothing is left, the after side shows Email. The heading stays the page heading. When that heading is Payment, or there is no heading, the after heading is Create your account. The button stays the button on the step. A higher finding can be the one drawn instead. The report keeps five fixes.

  2. 2No credit card required

    The line “No credit card required” is not a card. “A card is required” is not a card. A paragraph that says credit card is not a card. There has to be a card input or a card frame. Stumblet ignores that copy. The screen keeps its heading. The reaction does not mention a card field. There is no “Card form in the signup” finding from the sentence, and the missing-trust note does not fire from it either.

    This was a false positive. The walker used to treat the negated line as a card form. The card flag is now rebuilt from the fields and the frame. A flag that arrived with the copy, and with no card input and no card frame, is dropped.

  3. 3Card wall before the product

    The screen after an owned-site account submit, when that screen has a card input or a card frame, and no human check. The account button was pressed once. This next screen is logged, and the walk stops. It does not fill the card, and it does not pay. The screen is “Card wall before the product.” The step says “Stopped. Card wall before the product.” The reaction is “A card field is on the page, and I don't type a card to try this.” The finding is still “Card form in the signup.”

    A card already on the signup screen never gets this far. That screen is named Payment, and the step says “Stopped. Didn't type a card.” The owned walk only reaches this later screen when the card appears after the account exists. A human check on that later screen is not renamed to the card wall.

Questions

What counts as a card field?

A visible input, textarea, or select. A hidden input is skipped, and so is one that is not on the screen. The words are read from the type, the label, the name, the placeholder, and the autocomplete, in lower case. Autocomplete counts when it contains cc-number, cc-csc, cc-exp, or cc-name. The same words count when they contain card and then number, with at most one character between them, so card number, card-number, and cardnumber all count. The words cvv, cvc, expiry, and expiration count on their own, and so does the phrase security code. Capitals do not matter. Credit card, with no number, does not. A card field is not also an extra field, so the title is not “Card number before the product.”

What counts as a card frame?

An iframe. The walker joins its address, name, title, aria-label, and id. It does not have to be visible. It counts when that text contains elements-inner-card, elements-inner-payment, elements-inner-cvv, elements-inner-cvc, elements-inner-expiry, elements-inner-cardnumber, or elements-inner-card-number. It also counts for secure card number, secure card field, secure card payment, secure payment input frame, the words card number, hosted-fields, or securedfields. A fraud or metrics frame is skipped first, unless that same text is titled as a card. Those names are hcaptcha-invisible, human-security, controller-with-preconnect, __privateStripeController, and __privateStripeMetricsController. A card title, for that skip, is secure card payment, secure card number, secure payment input frame, the words card number, or card payment input. The title only stops the skip. The frame still has to match a card frame above. Card payment input is a title only, so on its own it is not a card frame. Secure card field is a card frame, and it is not a title, so it does not stop the skip. An address that contains m-outer is skipped when it is not titled as a card and it does not contain elements-inner-card or elements-inner-payment. A mount counts too: the id card-element, the class StripeElement, or the attribute data-elements-stable-field-name. A mount that holds an iframe counts even when the mount is hidden. With no iframe, the mount has to be visible, wider than 40 pixels, and taller than 16. When a frame or mount is found and no card input matched the narrower check, the walker adds a field labelled Card number, with autocomplete cc-number. That narrower check is autocomplete cc-number, cc-csc, or cc-exp, or the label, name, and placeholder matching card number, cvv, cvc, or security code. Expiry, expiration, and cc-name are still card fields for the finding.

Does “No credit card required” count?

No. That line is copy. An earlier fix stopped it counting as a card. Stumblet ignores “No credit card required” when there is no card input and no card frame. “A card is required” is the same. A paragraph that says credit card, or credit card info, is the same. The card flag is rebuilt from the fields and the frame, so a leftover flag on the copy does not survive. The screen is not named Payment. The reaction does not say a card field is on the page. There is no “Card form in the signup” finding, and no “No person and no company on this screen” finding from that sentence.

What if the card shows up after the account is created?

That is the owned walk, the one allowed to submit. The account button is pressed once. The next screen is logged, and the walk stops. It does not type a code, pick a plan, or pay. When that next screen has a card input or a card frame, and no human check, the screen is “Card wall before the product.” The step says “Stopped. Card wall before the product.” The reaction is “A card field is on the page, and I don't type a card to try this.” The finding on that screen is still “Card form in the signup.” A human check on that next screen is not renamed to the card wall.

Does Stumblet type a card?

No. On a card screen it does not fill the fields, including the email, and it does not press the button. The screen is named Payment, unless a human check is on the page. The step says “Stopped. Didn't type a card.” The reaction is “A card field is on the page, and I don't type a card to try this.” A card field is given no test value. A human check wins: the heading stays, the reaction is the human check, and the step says a human check is on the page. The card finding is still recorded when the card input or the card frame is there. The title is “Card form in the signup.” The fix is “Let people see the product before the card form.” The line is “A card field is on the page, and I don't type a card to try this.” The rank is 45.

Which fields to cut is on signup fields. A button that stays disabled is on signup button. Asking for the password twice is on confirm password. What the first screen should say is on signup page copy. Showing the rules before anyone types is on password rules. Asking for a work email is on work email. A provider button above the email is on social login. A password with no show control is on show password. A required terms tick box is on terms box. Running it yourself, and keeping the top five, is the new-user signup test. The short list is the onboarding checklist. The AI onboarding audit is the walk, and the signup prompt is the job it runs.

The walk is free. It starts on the home page.

Walk your signup