Muito obrigado Flávio, era isso mesmo, você é sempre muito prestativo e disposto a sanar nossas dúvidas. Só uma dica para quem se interessar, eu vi que ficaria muito verbosa a condição do *ngIf:
*ngIf="fotoForm.controls.url.invalid && (fotoForm.controls.url.dirty || fotoForm.controls.url.touched)">
então eu coloquei essas propriedades getters que me retorna um objeto AbstractControl que possui as propriedades dos estados.
public get titulo(){
return this.fotoForm.get("titulo");
}
public get url(){
return this.fotoForm.get("url");
}
e no formulário eu acesso as propriedades getters:
<div *ngIf="titulo.invalid && (titulo.dirty || titulo.touched)">
...
</div>