The feedback is fair, and it points at a real gap — not broken semantics, but missing keyboard affordance and visible focus.
Your HTML foundation is sound. Real <input type="radio"> elements inside <label> wrappers is the right pattern: screen readers get a proper radio group, arrow keys work natively, and form submission behaves correctly. An automated checker can pass that and still miss the sighted keyboard-user experience.
The reviewer is describing that gap. Custom cards that look like clickable tiles don’t read as “radio group” to someone tabbing through the form. That’s an operability and perceivability problem, not a semantic one.