After a bit of annoyance with nevow:attr, I did figure out how one works with it, but in doing so, I found what seems to me to be a far more reasonable approach. Rather than having an extra nevow:attr tag, with a slot inside it that you fill from your render method, you can simply alter the tag in your render method directly using its attributes field: