Open Bug 1949358 Opened 1 year ago Updated 4 months ago

m.buycarparts.co.uk - Unable to fill in the postcode correctly

Categories

(Web Compatibility :: Site Reports, defect, P1)

ARM
Android

Tracking

(Webcompat Priority:P1, Webcompat Score:8)

Webcompat Priority P1
Webcompat Score 8

People

(Reporter: railioaie, Unassigned)

References

()

Details

(Keywords: webcompat:site-report, webcompat:site-wait, Whiteboard: [webcompat-source:web-bugs])

User Story

platform:windows,mac,linux,android
impact:workflow-broken
configuration:general
affects:all
branch:release
diagnosis-team:dom
user-impact-score:800
outreach-assignee:hsinyi
outreach-contact-date:2025-04-22

Attachments

(2 files)

Environment:
Operating system: Android 14
Firefox version: Firefox Mobile 127.0

Preconditions:
Clean profile

Steps to reproduce:

  1. Navigate to: https://m.buycarparts.co.uk/basket/address
  2. Complete the fields with the delivery address details
  3. Observe

Expected Behavior:
All the fields are filled correctly

Actual Behavior:
The postcode field is unable to be filled in correctly

Notes:

  • Reproduces regardless of the status of ETP
  • Reproduces in firefox-nightly, and firefox-release
  • Does not reproduce in chrome

Created from https://github.com/webcompat/web-bugs/issues/148586

Severity: -- → S2
User Story: (updated)
Webcompat Priority: --- → P1
Webcompat Score: --- → 8
Priority: -- → P1
Attached file extra event handler
(removed)

By comparing the execution between Firefox and Chrome, I see the following jQuery code executes differently.

while ((i = a[t++]) && !u.isPropagationStopped()) {
  u.currentTarget = i.elem,
  n = 0;
  while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped())
    u.rnamespace &&
    !1 !== o.namespace &&
    !u.rnamespace.test(o.namespace) ||
    (
      u.handleObj = o,
      u.data = o.data,
      void 0 !== (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) &&
      !1 === (u.result = r) &&
      (u.preventDefault(), u.stopPropagation())
    )
}

i.handlers is the event handlers for keydown events for this <input> element, it was only one event handler in Chrome, but two event handlers in Firefox.

The attachment, extra event handler is the extra handler that gets to run in Firefox. Though I think this is still probably fine because it has this code:
return p.ignorable = d.ignorables.includes(k), f.keypressEvent.call(this, e, t, i, c, u)

ignorables contains KEY_229, which matches the keydown event that we dispatch. However the site doesn't seem to do the comparison correctly, so the "keydown" event isn't ignored.

Eventually, the site just renders whatever the "event.key" value is. I think this depends on IME, it could be "Process" which matches the screen recording in comment 1.

Overall, this looks like a site-bug.

Webcompat Score: 8 → 5
User Story: (updated)
Webcompat Priority: P1 → P2
User Story: (updated)
Webcompat Priority: P2 → P1
Webcompat Score: 5 → 8
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: