In signature, a context or signer info allows the use of the same public/private key for multiple usages, without worrying that a signature for one usage could be passed by an attacker as a signature for another usage. Instead of having to establish a convention in message formatting allowing to recognize messages intended for each usage, it's used a unique constant as context for each usage.
Example: the key pair is used both in an authentication protocol where the signer signs a nonce sent by the other party, and to sign documents. If that was done without context, the authentication protocol could be abused to make the private key holder sign any document the size of a nonce.
There's something similar, called label, in RSAES-OAEP encryption. However there's no equivalent for signature in PKCS#1, and I have never actually seen use of context in a system using signature (e.g. use of Ed25519ctx of RFC 8032). Instead, practice is to have some convention on message. I've seen the first byte(s) of the message used for that purpose, but that's no longer easy with the trend of encoding messages per XML or JSON, or/and Base64†;
† Don't start me on the various conventions about if the signature is on the encoded Base64 or on what it encodes, on if it's on the fields or the XML/JSON, on how the signature is often encoded as a field of the XML/JSON that it signs, on the canonicalization, what does it, and how.