From 75c092a8fe5f1780d068b554bd5db426ad155c71 Mon Sep 17 00:00:00 2001
From: Marvin W A common and convenient practise for new extensions is to supply a fallback body. This provides immediate backwards
+ A common and convenient practise for new extensions is to supply a fallback in the body. This provides immediate backwards
compatibility for naive clients, since - not understanding the new protocol - they will gracefully degrade to displaying
- the body as an instant message.
+
+
By way of example, a recent Reactions proposal suggested including the emoji as a <body/> element, so that existing clients would simply display it as a normal message.
The downside of this approach is that servers and other intermediaries treat the presence of a <body/> - as being an indicator that a message is indeed an instant message. They will then treat it this way for archival - purposes, etc, which might not be appropriate.
-This specification tackles the problem by providing an element to be used as a hint that the supplied - <body/> and <subject/> elements are only for fallback purposes, and the message SHOULD be - treated as if they were not present for most purposes.
+ as being an indicator that a message is indeed an instant message. They may errornously treat a message this way + for archival purposes, etc, that only has a <body/> for fallback purposes, which might not be appropriate. +This specification tackles the problem by providing an element to be used as a hint that parts or all of the supplied + <body/> and <subject/> elements are for fallback purposes, and the message may be treated as + if they were not present if the processing entity understands what the message is a fallback for.
+Additionally, the specification allows for transporting information about which parts of a <body/> are used + for fallback purposes and for which reason, such that supporting clients can hide or dim those parts when displaying them + to the user or otherwise treat those parts special as intended or encouraged by other specifications.
The fallback indicator is an element <fallback/> qualified by the &ns; namespace. It has no - attributes, content, or child elements.
+The fallback indicator is an element <fallback/> qualified by the &ns; namespace. It has an attribute + for that indidcates the specification that the fallback is meant to replace. This is typically the primary namespace + of the respective specification, but may be specified otherwise. The <fallback/> element may have one or multiple + <body/> or <subject/> child elements, that indicate the part of the message, that is a fallback. Both + of these child elements may have a start and end attribute which point to the start and end of a fallback + character sequence as defined in &xep0426; in the respective element in the message. If start and end + attribute are not supplied, the whole respective message element should be assumed to be there for fallback purposes. If + the <fallback/> element does not have any childs, it is assumed to apply to every message <body/> and + <subject/> present in the message.
+A previous version of this specification had an example using an encrypted message. It is suggested to use &xep0380; + instead of this specification for that usecase.
Receiving the above message, a naive client will naturally display only the <body/> element text, but - a client or server which supports this specification will know this is merely a fallback placeholder, and to ignore - (and not display) the content therein.
+Receiving the above message, a naive client will naturally display the full <body/> element text, but + a client which supports this specification and the specification for urn:xmpp:reply:0 will know that a part of the + message is merely a fallback placeholder, and to ignore (and not display) that part, if it has other ways to convey the + intended meaning.
-
+
-
+
+
+
+
+
+
+
+
+
+
+
]]>
From 06176c045447f8e641bf579d527441d21c986f78 Mon Sep 17 00:00:00 2001
From: Kevin Smith The fallback indicator is an element <fallback/> qualified by the &ns; namespace. It has an attribute - for that indidcates the specification that the fallback is meant to replace. This is typically the primary namespace + for that indicates the specification that the fallback is meant to replace. This is typically the primary namespace of the respective specification, but may be specified otherwise. The <fallback/> element may have one or multiple <body/> or <subject/> child elements, that indicate the part of the message, that is a fallback. Both of these child elements may have a start and end attribute which point to the start and end of a fallback