Will you be my Weaver?
Python 3, 74 bytes



def g(a,b,l):
 for x,y in l:
  if x&lt;len(a)and y&lt;len(b):a[x],b[y]=b[y],a[x]


Try it online!

Requires l to be sorted in lexicographical order. a and b are lists of characters representing (left ribbon, top ribbon).

Returns by modifying the list a and b.