Hi Eike,
In general, we don't actually have proper functionality for that.
However, assuming you're using some H(div) space for u, including an HDiv(U2xV0) + HDiv(U1xV1) sort of thing, you can obtain the BC u.n=0 by doing, for example,
bcs = [DirichletBC(W2, 0.0, "bottom"), DirichletBC(W2, 0.0, "top")]
Why does this work? Well, this causes any degrees of freedom on the 'bottom' and 'top' boundaries to be set to 0. But the degrees of freedom on the boundary in an H(div) space are precisely u.n (technically with some sort of scaling, but scaled 0 is still 0). And any interior DOFs, or DOFs on other facets, have vanishing normal component on the original facet. So indeed, this does the right thing.
If your velocity was in something like VectorFunctionSpace(mesh, "CG", n), unfortunately this approach wouldn't work, and I think you'd have to apply the BC weakly by adding on a surface integral. But in the H(div) case, what I described above happens to work.
Hope this helps!