I'd like to work on this one.
Plan: change the two error messages so each one says which rule was broken, using the wording suggested above. The locator message is built in packages/contracts/src/previewAutomation.ts (received an invalid ${selectorKind} (N characters)). The URL message is built in packages/shared/src/preview.ts / packages/contracts/src/preview.ts. I'll add focused tests that check the new messages.
I'd leave about:blank being parsed as a schemeless host out of this PR, since it's a separate defect. Should I fix that in a follow-up PR, or do you count it as part of this issue?