Right, if I understand right, it should indeed not be marked safe -- because it should just be string literals. 

You should not be putting things like "&amp;" in substitution values.  You should be passing in literal strings, with just literal "&" to represent an ampersand, and then letting Rails escape them. 

The problem with just marking the string `html_safe` manually, is if an i18n value or a substitution value has what's meant to be a literal `>` or `<` or `&`  in it, now Rails _won't_ escape it. 

Normally I should be able to have an i18n value `Apples & Oranges`, and count on Rails to escape it. By marking `html_safe`, now Rails _won't_ escape the `&` in `Apples & Oranges` in an i18n value, and I guess I'm expected to enter `Apples &amp; Oranges` manually instead? But this is not normally how Rails i18n works, now the value used for title right here works different than everything else.