With the following code, I get the error presented in the title. Not sure if this is a bug or what, but it sure is annoying.
// rest of it isn't relevant
const image = getImageData(data, size)
const { src, alt } = image
const a11yProps = { alt }
if (alt.length === 0) {
  a11yProps.alt = ''
  a11yProps.role = 'presentation'
}
// eslint-disable-next-line jsx-a11y/alt-text
return <img src={src} {...a11yProps} {...remaining} /> 
If I remove the alt from the props object entirely, more errors appear. I'm pretty sure I could work around this with two returns, but I'd rather not do that.

And there's nothing in remaining that would overwrite role or alt.