For horizontally-scrollable values, quality constraint violation indicators are at the end of the scrollable element, and therefore not visible until scrolling. When the popover is open, horizontal scrolling is still possible. The popover remains attached to the end of the element, and can be scrolled off the edge of the page. This, in turn, makes the whole page horizontally-scrollable.
To reproduce:
# Find or set up a property that can have long values (examples: string, quantity, score, mathematical formula) with a constraint. "citation-needed" or "single-value" constraints are easy to violate.
# If testing locally, you might have to run jobs after setting up the constraint. For `mwcli`, use this command: `mw dev mw mwscript runJobs`
# Create a statement with that property, and make the value long enough to cause horizontal scrolling. For a basic string value, a bunch of characters with no spaces will do it.
# Reload the item page. See that the value is scrollable, and the violation indicator is not visible {F80912837}
# Scroll to the end of the value to find the indicator {F80912836}
# Click the indicator to open the popover {F80912839}
# Scroll the value back towards its beginning {F80912840}
# Scroll the page {F80912838}
Note: while {T425176} makes it possible to encounter this bug on more datatypes, this bug is not new. It has been around as long as horizontally-scrollable values and quality constraints have coexisted.
FIX
{F88668366}
[[ https://www.figma.com/design/9RwXYJxIYnuglDCwfBWi9H/MEX-Milestone-4---5?node-id=1361-7805&m=dev | Figma Design ]]
AC
[] for scrollable values*, the icon has a fixed position - to the right on LTR, to the left on RTL - and has a padding on size-75 to the container border - aligning under the editing action
[] the fade out on the value ends size-125 before the icon, so the user has space to tap and scroll
[] once clicked, the constrain value pop up always opens directly below with the pointer on the respective corner so it can open at least to the width of 280 px or more.
* i think we should do this with all values: always have the constrain violation size-75 to the border and open the constrain violations this exact way. The box is opening in varying sizes and i see potential for more bugs and chaos. WDYT