Thank you for taking time to look at this. I appreciate it a lot.
You are 100% correct on every point you put in English. Unfortunately, I do not understand how to run the demo you provided. I went to the code pen, and tried running the code, but I did not see indication of onblur events happening as I moved among the elements. I do not know how to view the console in the codepen. Putting that aside…
As you said, the problem occurs in my original demo only when attempting to move focus from one input field to another, without moving focus to another kind of element in between.
Regarding a simpler demo, I made just such a thing before seeing your comment. The problem does not occur in the simpler demo. Here are links to the simpler demo and a brief video explaining what caused the double-onblur.
SIMPLE DEMO THAT DOES NOT HAVE THE PROBLEM
VIDEO EXPLAINING (4:45 at normal speed, 1:15 at 3x speed, still intelligible)
ATTEMPT TO EXPLAIN WITH WORDS ONLY
The simpler demo leaves out one of the actions taking place in the demo I shared in the OP. The simpler demo does not include a refresh of the list when an item is edited.
The extra onblur makes complete sense. Reason it makes sense: when onblur is the result of putting focus into another input field, and the onblur event includes replacing all the input fields, it makes sense the refresh would trigger an onblur from the field that has just received focus. Somehow, FireFox completes the onblur before putting focus into the 2nd input field, so the 2nd onblur does not happen. In Brave, focus happens in the 2nd field before the onblur from the first field fires. I guess it makes sense that onblur would have to precede onfocus in the 2nd field, but I am not seeing this as a bug. Maybe there is a strict rule that says the onblur must precede the onfocus, but instead of that, I am making all the input fields default to read-only, then adding a pencil (edit) icon for each input field, so the user will have to tap the edit icon before the field will b editable. That will prevent the double-onblur.