In the accessible-name algorithm, what is the role of the 'visited' / recursion guard, and what concrete bug does it prevent?<div role="button" id="x" aria-labelledby="y"></div> <div role="button" id="y" aria-labelledby="x"></div>